TPTP Problem File: ITP100^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP100^1 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer ListInf problem prob_52__5408414_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : ListInf/prob_52__5408414_1 [Des21]

% Status   : Theorem
% Rating   : 0.30 v8.2.0, 0.38 v8.1.0, 0.27 v7.5.0
% Syntax   : Number of formulae    :  450 ( 197 unt;  94 typ;   0 def)
%            Number of atoms       :  947 ( 705 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 3688 ( 230   ~;  53   |; 136   &;2783   @)
%                                         (   0 <=>; 486  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   29 (   7 avg)
%            Number of types       :   10 (   9 usr)
%            Number of type conns  :  477 ( 477   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   88 (  85 usr;   8 con; 0-3 aty)
%            Number of variables   : 1277 (  28   ^;1135   !; 114   ?;1277   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 15:30:11.750
%------------------------------------------------------------------------------
% Could-be-implicit typings (9)
thf(ty_n_t__List__Olist_It__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
    list_list_list_a: $tType ).

thf(ty_n_t__Set__Oset_It__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
    set_list_list_a: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    list_list_a: $tType ).

thf(ty_n_t__Set__Oset_It__List__Olist_Itf__a_J_J,type,
    set_list_a: $tType ).

thf(ty_n_t__List__Olist_It__Nat__Onat_J,type,
    list_nat: $tType ).

thf(ty_n_t__List__Olist_Itf__a_J,type,
    list_a: $tType ).

thf(ty_n_t__Set__Oset_Itf__a_J,type,
    set_a: $tType ).

thf(ty_n_t__Nat__Onat,type,
    nat: $tType ).

thf(ty_n_tf__a,type,
    a: $tType ).

% Explicit typings (85)
thf(sy_c_BNF__Greatest__Fixpoint_OShift_001t__List__Olist_Itf__a_J,type,
    bNF_Gr1972240547list_a: set_list_list_a > list_a > set_list_list_a ).

thf(sy_c_BNF__Greatest__Fixpoint_OShift_001tf__a,type,
    bNF_Greatest_Shift_a: set_list_a > a > set_list_a ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__List__Olist_Itf__a_J,type,
    bNF_Gr1046450207list_a: set_list_list_a > list_list_a > set_list_a ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001tf__a,type,
    bNF_Greatest_Succ_a: set_list_a > list_a > set_a ).

thf(sy_c_If_001t__List__Olist_Itf__a_J,type,
    if_list_a: $o > list_a > list_a > list_a ).

thf(sy_c_List2_Olist__ord_001t__Nat__Onat,type,
    list_ord_nat: ( nat > nat > $o ) > list_nat > $o ).

thf(sy_c_List2_Olist__strict__asc_001t__Nat__Onat,type,
    list_strict_asc_nat: list_nat > $o ).

thf(sy_c_List2_Omap2_001tf__a_001tf__a_001tf__a,type,
    map2_a_a_a: ( a > a > a ) > list_a > list_a > list_a ).

thf(sy_c_ListInf__Mirabelle__akbajwqfbr_Oi__append_001t__List__Olist_Itf__a_J,type,
    listIn1753026346list_a: list_list_a > ( nat > list_a ) > nat > list_a ).

thf(sy_c_ListInf__Mirabelle__akbajwqfbr_Oi__append_001tf__a,type,
    listIn1312259492pend_a: list_a > ( nat > a ) > nat > a ).

thf(sy_c_List_Oappend_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    append_list_list_a: list_list_list_a > list_list_list_a > list_list_list_a ).

thf(sy_c_List_Oappend_001t__List__Olist_Itf__a_J,type,
    append_list_a: list_list_a > list_list_a > list_list_a ).

thf(sy_c_List_Oappend_001t__Nat__Onat,type,
    append_nat: list_nat > list_nat > list_nat ).

thf(sy_c_List_Oappend_001tf__a,type,
    append_a: list_a > list_a > list_a ).

thf(sy_c_List_Obind_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    bind_list_a_list_a: list_list_a > ( list_a > list_list_a ) > list_list_a ).

thf(sy_c_List_Obind_001t__List__Olist_Itf__a_J_001tf__a,type,
    bind_list_a_a: list_list_a > ( list_a > list_a ) > list_a ).

thf(sy_c_List_Obind_001tf__a_001t__List__Olist_Itf__a_J,type,
    bind_a_list_a: list_a > ( a > list_list_a ) > list_list_a ).

thf(sy_c_List_Obind_001tf__a_001tf__a,type,
    bind_a_a: list_a > ( a > list_a ) > list_a ).

thf(sy_c_List_Obutlast_001t__List__Olist_Itf__a_J,type,
    butlast_list_a: list_list_a > list_list_a ).

thf(sy_c_List_Obutlast_001tf__a,type,
    butlast_a: list_a > list_a ).

thf(sy_c_List_Oconcat_001t__List__Olist_Itf__a_J,type,
    concat_list_a: list_list_list_a > list_list_a ).

thf(sy_c_List_Oconcat_001tf__a,type,
    concat_a: list_list_a > list_a ).

thf(sy_c_List_Odistinct__adj_001t__List__Olist_Itf__a_J,type,
    distinct_adj_list_a: list_list_a > $o ).

thf(sy_c_List_Odistinct__adj_001tf__a,type,
    distinct_adj_a: list_a > $o ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__List__Olist_Itf__a_J_J_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    foldr_769741863list_a: ( list_list_a > list_list_a > list_list_a ) > list_list_list_a > list_list_a > list_list_a ).

thf(sy_c_List_Ofoldr_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    foldr_list_a_list_a: ( list_a > list_a > list_a ) > list_list_a > list_a > list_a ).

thf(sy_c_List_Oinsert_001t__List__Olist_Itf__a_J,type,
    insert_list_a: list_a > list_list_a > list_list_a ).

thf(sy_c_List_Oinsert_001tf__a,type,
    insert_a: a > list_a > list_a ).

thf(sy_c_List_Olast_001t__List__Olist_Itf__a_J,type,
    last_list_a: list_list_a > list_a ).

thf(sy_c_List_Olast_001tf__a,type,
    last_a: list_a > a ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    cons_list_list_a: list_list_a > list_list_list_a > list_list_list_a ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_Itf__a_J,type,
    cons_list_a: list_a > list_list_a > list_list_a ).

thf(sy_c_List_Olist_OCons_001t__Nat__Onat,type,
    cons_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Olist_OCons_001tf__a,type,
    cons_a: a > list_a > list_a ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    nil_list_list_a: list_list_list_a ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_Itf__a_J,type,
    nil_list_a: list_list_a ).

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001tf__a,type,
    nil_a: list_a ).

thf(sy_c_List_Olist_Ohd_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    hd_list_list_a: list_list_list_a > list_list_a ).

thf(sy_c_List_Olist_Ohd_001t__List__Olist_Itf__a_J,type,
    hd_list_a: list_list_a > list_a ).

thf(sy_c_List_Olist_Ohd_001tf__a,type,
    hd_a: list_a > a ).

thf(sy_c_List_Olist_Otl_001t__List__Olist_Itf__a_J,type,
    tl_list_a: list_list_a > list_list_a ).

thf(sy_c_List_Olist_Otl_001tf__a,type,
    tl_a: list_a > list_a ).

thf(sy_c_List_Olist__ex1_001t__List__Olist_Itf__a_J,type,
    list_ex1_list_a: ( list_a > $o ) > list_list_a > $o ).

thf(sy_c_List_Olist__ex1_001tf__a,type,
    list_ex1_a: ( a > $o ) > list_a > $o ).

thf(sy_c_List_Olistrelp_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    listre1221556159list_a: ( list_a > list_a > $o ) > list_list_a > list_list_a > $o ).

thf(sy_c_List_Olistrelp_001t__List__Olist_Itf__a_J_001tf__a,type,
    listrelp_list_a_a: ( list_a > a > $o ) > list_list_a > list_a > $o ).

thf(sy_c_List_Olistrelp_001tf__a_001t__List__Olist_Itf__a_J,type,
    listrelp_a_list_a: ( a > list_a > $o ) > list_a > list_list_a > $o ).

thf(sy_c_List_Olistrelp_001tf__a_001tf__a,type,
    listrelp_a_a: ( a > a > $o ) > list_a > list_a > $o ).

thf(sy_c_List_Omap__tailrec__rev_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    map_ta982122357list_a: ( list_a > list_a ) > list_list_a > list_list_a > list_list_a ).

thf(sy_c_List_Omap__tailrec__rev_001t__List__Olist_Itf__a_J_001tf__a,type,
    map_ta2002079599st_a_a: ( list_a > a ) > list_list_a > list_a > list_a ).

thf(sy_c_List_Omap__tailrec__rev_001tf__a_001t__List__Olist_Itf__a_J,type,
    map_ta41997947list_a: ( a > list_a ) > list_a > list_list_a > list_list_a ).

thf(sy_c_List_Omap__tailrec__rev_001tf__a_001tf__a,type,
    map_tailrec_rev_a_a: ( a > a ) > list_a > list_a > list_a ).

thf(sy_c_List_Omaps_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    maps_list_a_list_a: ( list_a > list_list_a ) > list_list_a > list_list_a ).

thf(sy_c_List_Omaps_001t__List__Olist_Itf__a_J_001tf__a,type,
    maps_list_a_a: ( list_a > list_a ) > list_list_a > list_a ).

thf(sy_c_List_Omaps_001tf__a_001t__List__Olist_Itf__a_J,type,
    maps_a_list_a: ( a > list_list_a ) > list_a > list_list_a ).

thf(sy_c_List_Omaps_001tf__a_001tf__a,type,
    maps_a_a: ( a > list_a ) > list_a > list_a ).

thf(sy_c_List_Omember_001t__List__Olist_Itf__a_J,type,
    member_list_a: list_list_a > list_a > $o ).

thf(sy_c_List_Omember_001tf__a,type,
    member_a: list_a > a > $o ).

thf(sy_c_List_Oord_Olexordp__eq_001t__List__Olist_Itf__a_J,type,
    lexordp_eq_list_a: ( list_a > list_a > $o ) > list_list_a > list_list_a > $o ).

thf(sy_c_List_Oord_Olexordp__eq_001tf__a,type,
    lexordp_eq_a: ( a > a > $o ) > list_a > list_a > $o ).

thf(sy_c_List_Oord__class_Olexordp_001t__Nat__Onat,type,
    ord_lexordp_nat: list_nat > list_nat > $o ).

thf(sy_c_List_Oord__class_Olexordp__eq_001t__Nat__Onat,type,
    ord_lexordp_eq_nat: list_nat > list_nat > $o ).

thf(sy_c_List_Oproduct__lists_001t__List__Olist_Itf__a_J,type,
    product_lists_list_a: list_list_list_a > list_list_list_a ).

thf(sy_c_List_Oproduct__lists_001tf__a,type,
    product_lists_a: list_list_a > list_list_a ).

thf(sy_c_List_Oremdups__adj_001tf__a,type,
    remdups_adj_a: list_a > list_a ).

thf(sy_c_List_Orotate1_001t__List__Olist_Itf__a_J,type,
    rotate1_list_a: list_list_a > list_list_a ).

thf(sy_c_List_Orotate1_001tf__a,type,
    rotate1_a: list_a > list_a ).

thf(sy_c_List_Oshuffles_001tf__a,type,
    shuffles_a: list_a > list_a > set_list_a ).

thf(sy_c_List_Osplice_001t__List__Olist_Itf__a_J,type,
    splice_list_a: list_list_a > list_list_a > list_list_a ).

thf(sy_c_List_Osplice_001tf__a,type,
    splice_a: list_a > list_a > list_a ).

thf(sy_c_List_Osubseqs_001t__List__Olist_Itf__a_J,type,
    subseqs_list_a: list_list_a > list_list_list_a ).

thf(sy_c_List_Osubseqs_001tf__a,type,
    subseqs_a: list_a > list_list_a ).

thf(sy_c_List_Osuccessively_001t__List__Olist_Itf__a_J,type,
    successively_list_a: ( list_a > list_a > $o ) > list_list_a > $o ).

thf(sy_c_List_Osuccessively_001tf__a,type,
    successively_a: ( a > a > $o ) > list_a > $o ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_Itf__a_J,type,
    size_size_list_a: list_a > nat ).

thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat,type,
    ord_less_nat: nat > nat > $o ).

thf(sy_c_Set_OCollect_001t__List__Olist_Itf__a_J,type,
    collect_list_a: ( list_a > $o ) > set_list_a ).

thf(sy_c_Set_OCollect_001tf__a,type,
    collect_a: ( a > $o ) > set_a ).

thf(sy_c_member_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    member_list_list_a: list_list_a > set_list_list_a > $o ).

thf(sy_c_member_001t__List__Olist_Itf__a_J,type,
    member_list_a2: list_a > set_list_a > $o ).

thf(sy_c_member_001tf__a,type,
    member_a2: a > set_a > $o ).

thf(sy_v_f,type,
    f: nat > a ).

thf(sy_v_x,type,
    x: a ).

thf(sy_v_xs,type,
    xs: list_a ).

% Relevant facts (352)
thf(fact_0_i__append__Nil,axiom,
    ! [F: nat > list_a] :
      ( ( listIn1753026346list_a @ nil_list_a @ F )
      = F ) ).

% i_append_Nil
thf(fact_1_i__append__Nil,axiom,
    ! [F: nat > a] :
      ( ( listIn1312259492pend_a @ nil_a @ F )
      = F ) ).

% i_append_Nil
thf(fact_2_list_Oinject,axiom,
    ! [X21: list_a,X22: list_list_a,Y21: list_a,Y22: list_list_a] :
      ( ( ( cons_list_a @ X21 @ X22 )
        = ( cons_list_a @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_3_list_Oinject,axiom,
    ! [X21: a,X22: list_a,Y21: a,Y22: list_a] :
      ( ( ( cons_a @ X21 @ X22 )
        = ( cons_a @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_4_list_Odistinct_I1_J,axiom,
    ! [X21: list_a,X22: list_list_a] :
      ( nil_list_a
     != ( cons_list_a @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_5_list_Odistinct_I1_J,axiom,
    ! [X21: a,X22: list_a] :
      ( nil_a
     != ( cons_a @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_6_list_OdiscI,axiom,
    ! [List: list_list_a,X21: list_a,X22: list_list_a] :
      ( ( List
        = ( cons_list_a @ X21 @ X22 ) )
     => ( List != nil_list_a ) ) ).

% list.discI
thf(fact_7_list_OdiscI,axiom,
    ! [List: list_a,X21: a,X22: list_a] :
      ( ( List
        = ( cons_a @ X21 @ X22 ) )
     => ( List != nil_a ) ) ).

% list.discI
thf(fact_8_list_Oexhaust,axiom,
    ! [Y: list_list_a] :
      ( ( Y != nil_list_a )
     => ~ ! [X212: list_a,X222: list_list_a] :
            ( Y
           != ( cons_list_a @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_9_list_Oexhaust,axiom,
    ! [Y: list_a] :
      ( ( Y != nil_a )
     => ~ ! [X212: a,X222: list_a] :
            ( Y
           != ( cons_a @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_10_list_Oinducts,axiom,
    ! [P: list_list_a > $o,List: list_list_a] :
      ( ( P @ nil_list_a )
     => ( ! [X1: list_a,X2: list_list_a] :
            ( ( P @ X2 )
           => ( P @ ( cons_list_a @ X1 @ X2 ) ) )
       => ( P @ List ) ) ) ).

% list.inducts
thf(fact_11_list_Oinducts,axiom,
    ! [P: list_a > $o,List: list_a] :
      ( ( P @ nil_a )
     => ( ! [X1: a,X2: list_a] :
            ( ( P @ X2 )
           => ( P @ ( cons_a @ X1 @ X2 ) ) )
       => ( P @ List ) ) ) ).

% list.inducts
thf(fact_12_neq__Nil__conv,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
      = ( ? [Y2: list_a,Ys: list_list_a] :
            ( Xs
            = ( cons_list_a @ Y2 @ Ys ) ) ) ) ).

% neq_Nil_conv
thf(fact_13_neq__Nil__conv,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
      = ( ? [Y2: a,Ys: list_a] :
            ( Xs
            = ( cons_a @ Y2 @ Ys ) ) ) ) ).

% neq_Nil_conv
thf(fact_14_list__induct2_H,axiom,
    ! [P: list_a > list_list_a > $o,Xs: list_a,Ys2: list_list_a] :
      ( ( P @ nil_a @ nil_list_a )
     => ( ! [X: a,Xs2: list_a] : ( P @ ( cons_a @ X @ Xs2 ) @ nil_list_a )
       => ( ! [Y3: list_a,Ys3: list_list_a] : ( P @ nil_a @ ( cons_list_a @ Y3 @ Ys3 ) )
         => ( ! [X: a,Xs2: list_a,Y3: list_a,Ys3: list_list_a] :
                ( ( P @ Xs2 @ Ys3 )
               => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
           => ( P @ Xs @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_15_list__induct2_H,axiom,
    ! [P: list_list_a > list_a > $o,Xs: list_list_a,Ys2: list_a] :
      ( ( P @ nil_list_a @ nil_a )
     => ( ! [X: list_a,Xs2: list_list_a] : ( P @ ( cons_list_a @ X @ Xs2 ) @ nil_a )
       => ( ! [Y3: a,Ys3: list_a] : ( P @ nil_list_a @ ( cons_a @ Y3 @ Ys3 ) )
         => ( ! [X: list_a,Xs2: list_list_a,Y3: a,Ys3: list_a] :
                ( ( P @ Xs2 @ Ys3 )
               => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
           => ( P @ Xs @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_16_list__induct2_H,axiom,
    ! [P: list_list_a > list_list_a > $o,Xs: list_list_a,Ys2: list_list_a] :
      ( ( P @ nil_list_a @ nil_list_a )
     => ( ! [X: list_a,Xs2: list_list_a] : ( P @ ( cons_list_a @ X @ Xs2 ) @ nil_list_a )
       => ( ! [Y3: list_a,Ys3: list_list_a] : ( P @ nil_list_a @ ( cons_list_a @ Y3 @ Ys3 ) )
         => ( ! [X: list_a,Xs2: list_list_a,Y3: list_a,Ys3: list_list_a] :
                ( ( P @ Xs2 @ Ys3 )
               => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
           => ( P @ Xs @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_17_list__induct2_H,axiom,
    ! [P: list_a > list_a > $o,Xs: list_a,Ys2: list_a] :
      ( ( P @ nil_a @ nil_a )
     => ( ! [X: a,Xs2: list_a] : ( P @ ( cons_a @ X @ Xs2 ) @ nil_a )
       => ( ! [Y3: a,Ys3: list_a] : ( P @ nil_a @ ( cons_a @ Y3 @ Ys3 ) )
         => ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
                ( ( P @ Xs2 @ Ys3 )
               => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
           => ( P @ Xs @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_18_splice_Oinduct,axiom,
    ! [P: list_list_a > list_list_a > $o,A0: list_list_a,A1: list_list_a] :
      ( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
     => ( ! [X: list_a,Xs2: list_list_a,Ys3: list_list_a] :
            ( ( P @ Ys3 @ Xs2 )
           => ( P @ ( cons_list_a @ X @ Xs2 ) @ Ys3 ) )
       => ( P @ A0 @ A1 ) ) ) ).

% splice.induct
thf(fact_19_splice_Oinduct,axiom,
    ! [P: list_a > list_a > $o,A0: list_a,A1: list_a] :
      ( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
     => ( ! [X: a,Xs2: list_a,Ys3: list_a] :
            ( ( P @ Ys3 @ Xs2 )
           => ( P @ ( cons_a @ X @ Xs2 ) @ Ys3 ) )
       => ( P @ A0 @ A1 ) ) ) ).

% splice.induct
thf(fact_20_induct__list012,axiom,
    ! [P: list_list_a > $o,Xs: list_list_a] :
      ( ( P @ nil_list_a )
     => ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
       => ( ! [X: list_a,Y3: list_a,Zs: list_list_a] :
              ( ( P @ Zs )
             => ( ( P @ ( cons_list_a @ Y3 @ Zs ) )
               => ( P @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Zs ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% induct_list012
thf(fact_21_induct__list012,axiom,
    ! [P: list_a > $o,Xs: list_a] :
      ( ( P @ nil_a )
     => ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
       => ( ! [X: a,Y3: a,Zs: list_a] :
              ( ( P @ Zs )
             => ( ( P @ ( cons_a @ Y3 @ Zs ) )
               => ( P @ ( cons_a @ X @ ( cons_a @ Y3 @ Zs ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% induct_list012
thf(fact_22_shuffles_Oinduct,axiom,
    ! [P: list_list_a > list_list_a > $o,A0: list_list_a,A1: list_list_a] :
      ( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
     => ( ! [Xs2: list_list_a] : ( P @ Xs2 @ nil_list_a )
       => ( ! [X: list_a,Xs2: list_list_a,Y3: list_a,Ys3: list_list_a] :
              ( ( P @ Xs2 @ ( cons_list_a @ Y3 @ Ys3 ) )
             => ( ( P @ ( cons_list_a @ X @ Xs2 ) @ Ys3 )
               => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) )
         => ( P @ A0 @ A1 ) ) ) ) ).

% shuffles.induct
thf(fact_23_shuffles_Oinduct,axiom,
    ! [P: list_a > list_a > $o,A0: list_a,A1: list_a] :
      ( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
     => ( ! [Xs2: list_a] : ( P @ Xs2 @ nil_a )
       => ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
              ( ( P @ Xs2 @ ( cons_a @ Y3 @ Ys3 ) )
             => ( ( P @ ( cons_a @ X @ Xs2 ) @ Ys3 )
               => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) )
         => ( P @ A0 @ A1 ) ) ) ) ).

% shuffles.induct
thf(fact_24_not__Cons__self2,axiom,
    ! [X3: list_a,Xs: list_list_a] :
      ( ( cons_list_a @ X3 @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_25_not__Cons__self2,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( cons_a @ X3 @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_26_map__tailrec__rev_Oinduct,axiom,
    ! [P: ( list_a > a ) > list_list_a > list_a > $o,A0: list_a > a,A1: list_list_a,A2: list_a] :
      ( ! [F2: list_a > a,X_1: list_a] : ( P @ F2 @ nil_list_a @ X_1 )
     => ( ! [F2: list_a > a,A: list_a,As: list_list_a,Bs: list_a] :
            ( ( P @ F2 @ As @ ( cons_a @ ( F2 @ A ) @ Bs ) )
           => ( P @ F2 @ ( cons_list_a @ A @ As ) @ Bs ) )
       => ( P @ A0 @ A1 @ A2 ) ) ) ).

% map_tailrec_rev.induct
thf(fact_27_map__tailrec__rev_Oinduct,axiom,
    ! [P: ( a > list_a ) > list_a > list_list_a > $o,A0: a > list_a,A1: list_a,A2: list_list_a] :
      ( ! [F2: a > list_a,X_1: list_list_a] : ( P @ F2 @ nil_a @ X_1 )
     => ( ! [F2: a > list_a,A: a,As: list_a,Bs: list_list_a] :
            ( ( P @ F2 @ As @ ( cons_list_a @ ( F2 @ A ) @ Bs ) )
           => ( P @ F2 @ ( cons_a @ A @ As ) @ Bs ) )
       => ( P @ A0 @ A1 @ A2 ) ) ) ).

% map_tailrec_rev.induct
thf(fact_28_map__tailrec__rev_Oinduct,axiom,
    ! [P: ( list_a > list_a ) > list_list_a > list_list_a > $o,A0: list_a > list_a,A1: list_list_a,A2: list_list_a] :
      ( ! [F2: list_a > list_a,X_1: list_list_a] : ( P @ F2 @ nil_list_a @ X_1 )
     => ( ! [F2: list_a > list_a,A: list_a,As: list_list_a,Bs: list_list_a] :
            ( ( P @ F2 @ As @ ( cons_list_a @ ( F2 @ A ) @ Bs ) )
           => ( P @ F2 @ ( cons_list_a @ A @ As ) @ Bs ) )
       => ( P @ A0 @ A1 @ A2 ) ) ) ).

% map_tailrec_rev.induct
thf(fact_29_map__tailrec__rev_Oinduct,axiom,
    ! [P: ( a > a ) > list_a > list_a > $o,A0: a > a,A1: list_a,A2: list_a] :
      ( ! [F2: a > a,X_1: list_a] : ( P @ F2 @ nil_a @ X_1 )
     => ( ! [F2: a > a,A: a,As: list_a,Bs: list_a] :
            ( ( P @ F2 @ As @ ( cons_a @ ( F2 @ A ) @ Bs ) )
           => ( P @ F2 @ ( cons_a @ A @ As ) @ Bs ) )
       => ( P @ A0 @ A1 @ A2 ) ) ) ).

% map_tailrec_rev.induct
thf(fact_30_list__nonempty__induct,axiom,
    ! [Xs: list_list_a,P: list_list_a > $o] :
      ( ( Xs != nil_list_a )
     => ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
       => ( ! [X: list_a,Xs2: list_list_a] :
              ( ( Xs2 != nil_list_a )
             => ( ( P @ Xs2 )
               => ( P @ ( cons_list_a @ X @ Xs2 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_31_list__nonempty__induct,axiom,
    ! [Xs: list_a,P: list_a > $o] :
      ( ( Xs != nil_a )
     => ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
       => ( ! [X: a,Xs2: list_a] :
              ( ( Xs2 != nil_a )
             => ( ( P @ Xs2 )
               => ( P @ ( cons_a @ X @ Xs2 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_32_successively_Oinduct,axiom,
    ! [P: ( list_a > list_a > $o ) > list_list_a > $o,A0: list_a > list_a > $o,A1: list_list_a] :
      ( ! [P2: list_a > list_a > $o] : ( P @ P2 @ nil_list_a )
     => ( ! [P2: list_a > list_a > $o,X: list_a] : ( P @ P2 @ ( cons_list_a @ X @ nil_list_a ) )
       => ( ! [P2: list_a > list_a > $o,X: list_a,Y3: list_a,Xs2: list_list_a] :
              ( ( P @ P2 @ ( cons_list_a @ Y3 @ Xs2 ) )
             => ( P @ P2 @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) )
         => ( P @ A0 @ A1 ) ) ) ) ).

% successively.induct
thf(fact_33_successively_Oinduct,axiom,
    ! [P: ( a > a > $o ) > list_a > $o,A0: a > a > $o,A1: list_a] :
      ( ! [P2: a > a > $o] : ( P @ P2 @ nil_a )
     => ( ! [P2: a > a > $o,X: a] : ( P @ P2 @ ( cons_a @ X @ nil_a ) )
       => ( ! [P2: a > a > $o,X: a,Y3: a,Xs2: list_a] :
              ( ( P @ P2 @ ( cons_a @ Y3 @ Xs2 ) )
             => ( P @ P2 @ ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) )
         => ( P @ A0 @ A1 ) ) ) ) ).

% successively.induct
thf(fact_34_remdups__adj_Oinduct,axiom,
    ! [P: list_list_a > $o,A0: list_list_a] :
      ( ( P @ nil_list_a )
     => ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
       => ( ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
              ( ( ( X = Y3 )
               => ( P @ ( cons_list_a @ X @ Xs2 ) ) )
             => ( ( ( X != Y3 )
                 => ( P @ ( cons_list_a @ Y3 @ Xs2 ) ) )
               => ( P @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) )
         => ( P @ A0 ) ) ) ) ).

% remdups_adj.induct
thf(fact_35_remdups__adj_Oinduct,axiom,
    ! [P: list_a > $o,A0: list_a] :
      ( ( P @ nil_a )
     => ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
       => ( ! [X: a,Y3: a,Xs2: list_a] :
              ( ( ( X = Y3 )
               => ( P @ ( cons_a @ X @ Xs2 ) ) )
             => ( ( ( X != Y3 )
                 => ( P @ ( cons_a @ Y3 @ Xs2 ) ) )
               => ( P @ ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) ) )
         => ( P @ A0 ) ) ) ) ).

% remdups_adj.induct
thf(fact_36_sorted__wrt_Oinduct,axiom,
    ! [P: ( list_a > list_a > $o ) > list_list_a > $o,A0: list_a > list_a > $o,A1: list_list_a] :
      ( ! [P2: list_a > list_a > $o] : ( P @ P2 @ nil_list_a )
     => ( ! [P2: list_a > list_a > $o,X: list_a,Ys3: list_list_a] :
            ( ( P @ P2 @ Ys3 )
           => ( P @ P2 @ ( cons_list_a @ X @ Ys3 ) ) )
       => ( P @ A0 @ A1 ) ) ) ).

% sorted_wrt.induct
thf(fact_37_sorted__wrt_Oinduct,axiom,
    ! [P: ( a > a > $o ) > list_a > $o,A0: a > a > $o,A1: list_a] :
      ( ! [P2: a > a > $o] : ( P @ P2 @ nil_a )
     => ( ! [P2: a > a > $o,X: a,Ys3: list_a] :
            ( ( P @ P2 @ Ys3 )
           => ( P @ P2 @ ( cons_a @ X @ Ys3 ) ) )
       => ( P @ A0 @ A1 ) ) ) ).

% sorted_wrt.induct
thf(fact_38_remdups__adj_Ocases,axiom,
    ! [X3: list_list_a] :
      ( ( X3 != nil_list_a )
     => ( ! [X: list_a] :
            ( X3
           != ( cons_list_a @ X @ nil_list_a ) )
       => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
              ( X3
             != ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_39_remdups__adj_Ocases,axiom,
    ! [X3: list_a] :
      ( ( X3 != nil_a )
     => ( ! [X: a] :
            ( X3
           != ( cons_a @ X @ nil_a ) )
       => ~ ! [X: a,Y3: a,Xs2: list_a] :
              ( X3
             != ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_40_transpose_Ocases,axiom,
    ! [X3: list_list_list_a] :
      ( ( X3 != nil_list_list_a )
     => ( ! [Xss: list_list_list_a] :
            ( X3
           != ( cons_list_list_a @ nil_list_a @ Xss ) )
       => ~ ! [X: list_a,Xs2: list_list_a,Xss: list_list_list_a] :
              ( X3
             != ( cons_list_list_a @ ( cons_list_a @ X @ Xs2 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_41_transpose_Ocases,axiom,
    ! [X3: list_list_a] :
      ( ( X3 != nil_list_a )
     => ( ! [Xss: list_list_a] :
            ( X3
           != ( cons_list_a @ nil_a @ Xss ) )
       => ~ ! [X: a,Xs2: list_a,Xss: list_list_a] :
              ( X3
             != ( cons_list_a @ ( cons_a @ X @ Xs2 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_42_insert__Nil,axiom,
    ! [X3: list_a] :
      ( ( insert_list_a @ X3 @ nil_list_a )
      = ( cons_list_a @ X3 @ nil_list_a ) ) ).

% insert_Nil
thf(fact_43_insert__Nil,axiom,
    ! [X3: a] :
      ( ( insert_a @ X3 @ nil_a )
      = ( cons_a @ X3 @ nil_a ) ) ).

% insert_Nil
thf(fact_44_list__ex1__simps_I1_J,axiom,
    ! [P: list_a > $o] :
      ~ ( list_ex1_list_a @ P @ nil_list_a ) ).

% list_ex1_simps(1)
thf(fact_45_list__ex1__simps_I1_J,axiom,
    ! [P: a > $o] :
      ~ ( list_ex1_a @ P @ nil_a ) ).

% list_ex1_simps(1)
thf(fact_46_map__tailrec__rev_Oelims,axiom,
    ! [X3: a > list_a,Xa: list_a,Xb: list_list_a,Y: list_list_a] :
      ( ( ( map_ta41997947list_a @ X3 @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_a )
         => ( Y != Xb ) )
       => ~ ! [A: a,As: list_a] :
              ( ( Xa
                = ( cons_a @ A @ As ) )
             => ( Y
               != ( map_ta41997947list_a @ X3 @ As @ ( cons_list_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_47_map__tailrec__rev_Oelims,axiom,
    ! [X3: list_a > a,Xa: list_list_a,Xb: list_a,Y: list_a] :
      ( ( ( map_ta2002079599st_a_a @ X3 @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_list_a )
         => ( Y != Xb ) )
       => ~ ! [A: list_a,As: list_list_a] :
              ( ( Xa
                = ( cons_list_a @ A @ As ) )
             => ( Y
               != ( map_ta2002079599st_a_a @ X3 @ As @ ( cons_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_48_map__tailrec__rev_Oelims,axiom,
    ! [X3: list_a > list_a,Xa: list_list_a,Xb: list_list_a,Y: list_list_a] :
      ( ( ( map_ta982122357list_a @ X3 @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_list_a )
         => ( Y != Xb ) )
       => ~ ! [A: list_a,As: list_list_a] :
              ( ( Xa
                = ( cons_list_a @ A @ As ) )
             => ( Y
               != ( map_ta982122357list_a @ X3 @ As @ ( cons_list_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_49_map__tailrec__rev_Oelims,axiom,
    ! [X3: a > a,Xa: list_a,Xb: list_a,Y: list_a] :
      ( ( ( map_tailrec_rev_a_a @ X3 @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_a )
         => ( Y != Xb ) )
       => ~ ! [A: a,As: list_a] :
              ( ( Xa
                = ( cons_a @ A @ As ) )
             => ( Y
               != ( map_tailrec_rev_a_a @ X3 @ As @ ( cons_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_50_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [Less: list_a > list_a > $o,X3: list_a,Xs: list_list_a] :
      ~ ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ nil_list_a ) ).

% ord.lexordp_eq_simps(3)
thf(fact_51_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [Less: a > a > $o,X3: a,Xs: list_a] :
      ~ ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ nil_a ) ).

% ord.lexordp_eq_simps(3)
thf(fact_52_bind__simps_I1_J,axiom,
    ! [F: a > list_list_a] :
      ( ( bind_a_list_a @ nil_a @ F )
      = nil_list_a ) ).

% bind_simps(1)
thf(fact_53_bind__simps_I1_J,axiom,
    ! [F: list_a > list_a] :
      ( ( bind_list_a_a @ nil_list_a @ F )
      = nil_a ) ).

% bind_simps(1)
thf(fact_54_bind__simps_I1_J,axiom,
    ! [F: list_a > list_list_a] :
      ( ( bind_list_a_list_a @ nil_list_a @ F )
      = nil_list_a ) ).

% bind_simps(1)
thf(fact_55_bind__simps_I1_J,axiom,
    ! [F: a > list_a] :
      ( ( bind_a_a @ nil_a @ F )
      = nil_a ) ).

% bind_simps(1)
thf(fact_56_listrelp_Oinducts,axiom,
    ! [R: a > list_a > $o,X12: list_a,X23: list_list_a,P: list_a > list_list_a > $o] :
      ( ( listrelp_a_list_a @ R @ X12 @ X23 )
     => ( ( P @ nil_a @ nil_list_a )
       => ( ! [X: a,Y3: list_a,Xs2: list_a,Ys3: list_list_a] :
              ( ( R @ X @ Y3 )
             => ( ( listrelp_a_list_a @ R @ Xs2 @ Ys3 )
               => ( ( P @ Xs2 @ Ys3 )
                 => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) )
         => ( P @ X12 @ X23 ) ) ) ) ).

% listrelp.inducts
thf(fact_57_listrelp_Oinducts,axiom,
    ! [R: list_a > a > $o,X12: list_list_a,X23: list_a,P: list_list_a > list_a > $o] :
      ( ( listrelp_list_a_a @ R @ X12 @ X23 )
     => ( ( P @ nil_list_a @ nil_a )
       => ( ! [X: list_a,Y3: a,Xs2: list_list_a,Ys3: list_a] :
              ( ( R @ X @ Y3 )
             => ( ( listrelp_list_a_a @ R @ Xs2 @ Ys3 )
               => ( ( P @ Xs2 @ Ys3 )
                 => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) )
         => ( P @ X12 @ X23 ) ) ) ) ).

% listrelp.inducts
thf(fact_58_listrelp_Oinducts,axiom,
    ! [R: list_a > list_a > $o,X12: list_list_a,X23: list_list_a,P: list_list_a > list_list_a > $o] :
      ( ( listre1221556159list_a @ R @ X12 @ X23 )
     => ( ( P @ nil_list_a @ nil_list_a )
       => ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
              ( ( R @ X @ Y3 )
             => ( ( listre1221556159list_a @ R @ Xs2 @ Ys3 )
               => ( ( P @ Xs2 @ Ys3 )
                 => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) )
         => ( P @ X12 @ X23 ) ) ) ) ).

% listrelp.inducts
thf(fact_59_listrelp_Oinducts,axiom,
    ! [R: a > a > $o,X12: list_a,X23: list_a,P: list_a > list_a > $o] :
      ( ( listrelp_a_a @ R @ X12 @ X23 )
     => ( ( P @ nil_a @ nil_a )
       => ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
              ( ( R @ X @ Y3 )
             => ( ( listrelp_a_a @ R @ Xs2 @ Ys3 )
               => ( ( P @ Xs2 @ Ys3 )
                 => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) )
         => ( P @ X12 @ X23 ) ) ) ) ).

% listrelp.inducts
thf(fact_60_listrelp_Osimps,axiom,
    ( listrelp_a_list_a
    = ( ^ [R2: a > list_a > $o,A12: list_a,A22: list_list_a] :
          ( ( ( A12 = nil_a )
            & ( A22 = nil_list_a ) )
          | ? [X4: a,Y2: list_a,Xs3: list_a,Ys: list_list_a] :
              ( ( A12
                = ( cons_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_list_a @ Y2 @ Ys ) )
              & ( R2 @ X4 @ Y2 )
              & ( listrelp_a_list_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).

% listrelp.simps
thf(fact_61_listrelp_Osimps,axiom,
    ( listrelp_list_a_a
    = ( ^ [R2: list_a > a > $o,A12: list_list_a,A22: list_a] :
          ( ( ( A12 = nil_list_a )
            & ( A22 = nil_a ) )
          | ? [X4: list_a,Y2: a,Xs3: list_list_a,Ys: list_a] :
              ( ( A12
                = ( cons_list_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_a @ Y2 @ Ys ) )
              & ( R2 @ X4 @ Y2 )
              & ( listrelp_list_a_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).

% listrelp.simps
thf(fact_62_listrelp_Osimps,axiom,
    ( listre1221556159list_a
    = ( ^ [R2: list_a > list_a > $o,A12: list_list_a,A22: list_list_a] :
          ( ( ( A12 = nil_list_a )
            & ( A22 = nil_list_a ) )
          | ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
              ( ( A12
                = ( cons_list_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_list_a @ Y2 @ Ys ) )
              & ( R2 @ X4 @ Y2 )
              & ( listre1221556159list_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).

% listrelp.simps
thf(fact_63_listrelp_Osimps,axiom,
    ( listrelp_a_a
    = ( ^ [R2: a > a > $o,A12: list_a,A22: list_a] :
          ( ( ( A12 = nil_a )
            & ( A22 = nil_a ) )
          | ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
              ( ( A12
                = ( cons_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_a @ Y2 @ Ys ) )
              & ( R2 @ X4 @ Y2 )
              & ( listrelp_a_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).

% listrelp.simps
thf(fact_64_listrelp_Ocases,axiom,
    ! [R: a > list_a > $o,A1: list_a,A2: list_list_a] :
      ( ( listrelp_a_list_a @ R @ A1 @ A2 )
     => ( ( ( A1 = nil_a )
         => ( A2 != nil_list_a ) )
       => ~ ! [X: a,Y3: list_a,Xs2: list_a] :
              ( ( A1
                = ( cons_a @ X @ Xs2 ) )
             => ! [Ys3: list_list_a] :
                  ( ( A2
                    = ( cons_list_a @ Y3 @ Ys3 ) )
                 => ( ( R @ X @ Y3 )
                   => ~ ( listrelp_a_list_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).

% listrelp.cases
thf(fact_65_listrelp_Ocases,axiom,
    ! [R: list_a > a > $o,A1: list_list_a,A2: list_a] :
      ( ( listrelp_list_a_a @ R @ A1 @ A2 )
     => ( ( ( A1 = nil_list_a )
         => ( A2 != nil_a ) )
       => ~ ! [X: list_a,Y3: a,Xs2: list_list_a] :
              ( ( A1
                = ( cons_list_a @ X @ Xs2 ) )
             => ! [Ys3: list_a] :
                  ( ( A2
                    = ( cons_a @ Y3 @ Ys3 ) )
                 => ( ( R @ X @ Y3 )
                   => ~ ( listrelp_list_a_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).

% listrelp.cases
thf(fact_66_listrelp_Ocases,axiom,
    ! [R: list_a > list_a > $o,A1: list_list_a,A2: list_list_a] :
      ( ( listre1221556159list_a @ R @ A1 @ A2 )
     => ( ( ( A1 = nil_list_a )
         => ( A2 != nil_list_a ) )
       => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
              ( ( A1
                = ( cons_list_a @ X @ Xs2 ) )
             => ! [Ys3: list_list_a] :
                  ( ( A2
                    = ( cons_list_a @ Y3 @ Ys3 ) )
                 => ( ( R @ X @ Y3 )
                   => ~ ( listre1221556159list_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).

% listrelp.cases
thf(fact_67_listrelp_Ocases,axiom,
    ! [R: a > a > $o,A1: list_a,A2: list_a] :
      ( ( listrelp_a_a @ R @ A1 @ A2 )
     => ( ( ( A1 = nil_a )
         => ( A2 != nil_a ) )
       => ~ ! [X: a,Y3: a,Xs2: list_a] :
              ( ( A1
                = ( cons_a @ X @ Xs2 ) )
             => ! [Ys3: list_a] :
                  ( ( A2
                    = ( cons_a @ Y3 @ Ys3 ) )
                 => ( ( R @ X @ Y3 )
                   => ~ ( listrelp_a_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).

% listrelp.cases
thf(fact_68_ord_Olexordp__eq__simps_I4_J,axiom,
    ! [Less: list_a > list_a > $o,X3: list_a,Xs: list_list_a,Y: list_a,Ys2: list_list_a] :
      ( ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) )
      = ( ( Less @ X3 @ Y )
        | ( ~ ( Less @ Y @ X3 )
          & ( lexordp_eq_list_a @ Less @ Xs @ Ys2 ) ) ) ) ).

% ord.lexordp_eq_simps(4)
thf(fact_69_ord_Olexordp__eq__simps_I4_J,axiom,
    ! [Less: a > a > $o,X3: a,Xs: list_a,Y: a,Ys2: list_a] :
      ( ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) )
      = ( ( Less @ X3 @ Y )
        | ( ~ ( Less @ Y @ X3 )
          & ( lexordp_eq_a @ Less @ Xs @ Ys2 ) ) ) ) ).

% ord.lexordp_eq_simps(4)
thf(fact_70_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [Less: list_a > list_a > $o,Xs: list_list_a] :
      ( ( lexordp_eq_list_a @ Less @ Xs @ nil_list_a )
      = ( Xs = nil_list_a ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_71_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [Less: a > a > $o,Xs: list_a] :
      ( ( lexordp_eq_a @ Less @ Xs @ nil_a )
      = ( Xs = nil_a ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_72_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [Less: list_a > list_a > $o,Ys2: list_list_a] : ( lexordp_eq_list_a @ Less @ nil_list_a @ Ys2 ) ).

% ord.lexordp_eq_simps(1)
thf(fact_73_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [Less: a > a > $o,Ys2: list_a] : ( lexordp_eq_a @ Less @ nil_a @ Ys2 ) ).

% ord.lexordp_eq_simps(1)
thf(fact_74_ord_Olexordp__eq_Ocong,axiom,
    lexordp_eq_a = lexordp_eq_a ).

% ord.lexordp_eq.cong
thf(fact_75_ord_Olexordp__eq__refl,axiom,
    ! [Less: a > a > $o,Xs: list_a] : ( lexordp_eq_a @ Less @ Xs @ Xs ) ).

% ord.lexordp_eq_refl
thf(fact_76_mem__Collect__eq,axiom,
    ! [A3: list_a,P: list_a > $o] :
      ( ( member_list_a2 @ A3 @ ( collect_list_a @ P ) )
      = ( P @ A3 ) ) ).

% mem_Collect_eq
thf(fact_77_mem__Collect__eq,axiom,
    ! [A3: a,P: a > $o] :
      ( ( member_a2 @ A3 @ ( collect_a @ P ) )
      = ( P @ A3 ) ) ).

% mem_Collect_eq
thf(fact_78_Collect__mem__eq,axiom,
    ! [A4: set_list_a] :
      ( ( collect_list_a
        @ ^ [X4: list_a] : ( member_list_a2 @ X4 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_79_Collect__mem__eq,axiom,
    ! [A4: set_a] :
      ( ( collect_a
        @ ^ [X4: a] : ( member_a2 @ X4 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_80_ord_Olexordp__eq_OCons,axiom,
    ! [Less: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
      ( ( Less @ X3 @ Y )
     => ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ).

% ord.lexordp_eq.Cons
thf(fact_81_ord_Olexordp__eq_OCons,axiom,
    ! [Less: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
      ( ( Less @ X3 @ Y )
     => ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ).

% ord.lexordp_eq.Cons
thf(fact_82_ord_Olexordp__eq_OCons__eq,axiom,
    ! [Less: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
      ( ~ ( Less @ X3 @ Y )
     => ( ~ ( Less @ Y @ X3 )
       => ( ( lexordp_eq_list_a @ Less @ Xs @ Ys2 )
         => ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ) ).

% ord.lexordp_eq.Cons_eq
thf(fact_83_ord_Olexordp__eq_OCons__eq,axiom,
    ! [Less: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
      ( ~ ( Less @ X3 @ Y )
     => ( ~ ( Less @ Y @ X3 )
       => ( ( lexordp_eq_a @ Less @ Xs @ Ys2 )
         => ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ) ).

% ord.lexordp_eq.Cons_eq
thf(fact_84_ord_Olexordp__eq_ONil,axiom,
    ! [Less: list_a > list_a > $o,Ys2: list_list_a] : ( lexordp_eq_list_a @ Less @ nil_list_a @ Ys2 ) ).

% ord.lexordp_eq.Nil
thf(fact_85_ord_Olexordp__eq_ONil,axiom,
    ! [Less: a > a > $o,Ys2: list_a] : ( lexordp_eq_a @ Less @ nil_a @ Ys2 ) ).

% ord.lexordp_eq.Nil
thf(fact_86_listrelp_OCons,axiom,
    ! [R: a > list_a > $o,X3: a,Y: list_a,Xs: list_a,Ys2: list_list_a] :
      ( ( R @ X3 @ Y )
     => ( ( listrelp_a_list_a @ R @ Xs @ Ys2 )
       => ( listrelp_a_list_a @ R @ ( cons_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ).

% listrelp.Cons
thf(fact_87_listrelp_OCons,axiom,
    ! [R: list_a > a > $o,X3: list_a,Y: a,Xs: list_list_a,Ys2: list_a] :
      ( ( R @ X3 @ Y )
     => ( ( listrelp_list_a_a @ R @ Xs @ Ys2 )
       => ( listrelp_list_a_a @ R @ ( cons_list_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ).

% listrelp.Cons
thf(fact_88_listrelp_OCons,axiom,
    ! [R: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
      ( ( R @ X3 @ Y )
     => ( ( listre1221556159list_a @ R @ Xs @ Ys2 )
       => ( listre1221556159list_a @ R @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ).

% listrelp.Cons
thf(fact_89_listrelp_OCons,axiom,
    ! [R: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
      ( ( R @ X3 @ Y )
     => ( ( listrelp_a_a @ R @ Xs @ Ys2 )
       => ( listrelp_a_a @ R @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ).

% listrelp.Cons
thf(fact_90_listrelp_ONil,axiom,
    ! [R: a > list_a > $o] : ( listrelp_a_list_a @ R @ nil_a @ nil_list_a ) ).

% listrelp.Nil
thf(fact_91_listrelp_ONil,axiom,
    ! [R: list_a > a > $o] : ( listrelp_list_a_a @ R @ nil_list_a @ nil_a ) ).

% listrelp.Nil
thf(fact_92_listrelp_ONil,axiom,
    ! [R: list_a > list_a > $o] : ( listre1221556159list_a @ R @ nil_list_a @ nil_list_a ) ).

% listrelp.Nil
thf(fact_93_listrelp_ONil,axiom,
    ! [R: a > a > $o] : ( listrelp_a_a @ R @ nil_a @ nil_a ) ).

% listrelp.Nil
thf(fact_94_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: a > list_a,A3: a,As2: list_a,Bs2: list_list_a] :
      ( ( map_ta41997947list_a @ F @ ( cons_a @ A3 @ As2 ) @ Bs2 )
      = ( map_ta41997947list_a @ F @ As2 @ ( cons_list_a @ ( F @ A3 ) @ Bs2 ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_95_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: list_a > a,A3: list_a,As2: list_list_a,Bs2: list_a] :
      ( ( map_ta2002079599st_a_a @ F @ ( cons_list_a @ A3 @ As2 ) @ Bs2 )
      = ( map_ta2002079599st_a_a @ F @ As2 @ ( cons_a @ ( F @ A3 ) @ Bs2 ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_96_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: list_a > list_a,A3: list_a,As2: list_list_a,Bs2: list_list_a] :
      ( ( map_ta982122357list_a @ F @ ( cons_list_a @ A3 @ As2 ) @ Bs2 )
      = ( map_ta982122357list_a @ F @ As2 @ ( cons_list_a @ ( F @ A3 ) @ Bs2 ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_97_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: a > a,A3: a,As2: list_a,Bs2: list_a] :
      ( ( map_tailrec_rev_a_a @ F @ ( cons_a @ A3 @ As2 ) @ Bs2 )
      = ( map_tailrec_rev_a_a @ F @ As2 @ ( cons_a @ ( F @ A3 ) @ Bs2 ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_98_map__tailrec__rev_Osimps_I1_J,axiom,
    ! [F: a > a,Bs2: list_a] :
      ( ( map_tailrec_rev_a_a @ F @ nil_a @ Bs2 )
      = Bs2 ) ).

% map_tailrec_rev.simps(1)
thf(fact_99_ord_Olexordp__eq_Ocases,axiom,
    ! [Less: list_a > list_a > $o,A1: list_list_a,A2: list_list_a] :
      ( ( lexordp_eq_list_a @ Less @ A1 @ A2 )
     => ( ( A1 != nil_list_a )
       => ( ! [X: list_a] :
              ( ? [Xs2: list_list_a] :
                  ( A1
                  = ( cons_list_a @ X @ Xs2 ) )
             => ! [Y3: list_a] :
                  ( ? [Ys3: list_list_a] :
                      ( A2
                      = ( cons_list_a @ Y3 @ Ys3 ) )
                 => ~ ( Less @ X @ Y3 ) ) )
         => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
                ( ( A1
                  = ( cons_list_a @ X @ Xs2 ) )
               => ! [Ys3: list_list_a] :
                    ( ( A2
                      = ( cons_list_a @ Y3 @ Ys3 ) )
                   => ( ~ ( Less @ X @ Y3 )
                     => ( ~ ( Less @ Y3 @ X )
                       => ~ ( lexordp_eq_list_a @ Less @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_100_ord_Olexordp__eq_Ocases,axiom,
    ! [Less: a > a > $o,A1: list_a,A2: list_a] :
      ( ( lexordp_eq_a @ Less @ A1 @ A2 )
     => ( ( A1 != nil_a )
       => ( ! [X: a] :
              ( ? [Xs2: list_a] :
                  ( A1
                  = ( cons_a @ X @ Xs2 ) )
             => ! [Y3: a] :
                  ( ? [Ys3: list_a] :
                      ( A2
                      = ( cons_a @ Y3 @ Ys3 ) )
                 => ~ ( Less @ X @ Y3 ) ) )
         => ~ ! [X: a,Y3: a,Xs2: list_a] :
                ( ( A1
                  = ( cons_a @ X @ Xs2 ) )
               => ! [Ys3: list_a] :
                    ( ( A2
                      = ( cons_a @ Y3 @ Ys3 ) )
                   => ( ~ ( Less @ X @ Y3 )
                     => ( ~ ( Less @ Y3 @ X )
                       => ~ ( lexordp_eq_a @ Less @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_101_ord_Olexordp__eq_Osimps,axiom,
    ( lexordp_eq_list_a
    = ( ^ [Less2: list_a > list_a > $o,A12: list_list_a,A22: list_list_a] :
          ( ? [Ys: list_list_a] :
              ( ( A12 = nil_list_a )
              & ( A22 = Ys ) )
          | ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
              ( ( A12
                = ( cons_list_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_list_a @ Y2 @ Ys ) )
              & ( Less2 @ X4 @ Y2 ) )
          | ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
              ( ( A12
                = ( cons_list_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_list_a @ Y2 @ Ys ) )
              & ~ ( Less2 @ X4 @ Y2 )
              & ~ ( Less2 @ Y2 @ X4 )
              & ( lexordp_eq_list_a @ Less2 @ Xs3 @ Ys ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_102_ord_Olexordp__eq_Osimps,axiom,
    ( lexordp_eq_a
    = ( ^ [Less2: a > a > $o,A12: list_a,A22: list_a] :
          ( ? [Ys: list_a] :
              ( ( A12 = nil_a )
              & ( A22 = Ys ) )
          | ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
              ( ( A12
                = ( cons_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_a @ Y2 @ Ys ) )
              & ( Less2 @ X4 @ Y2 ) )
          | ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
              ( ( A12
                = ( cons_a @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_a @ Y2 @ Ys ) )
              & ~ ( Less2 @ X4 @ Y2 )
              & ~ ( Less2 @ Y2 @ X4 )
              & ( lexordp_eq_a @ Less2 @ Xs3 @ Ys ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_103_ord_Olexordp__eq_Oinducts,axiom,
    ! [Less: list_a > list_a > $o,X12: list_list_a,X23: list_list_a,P: list_list_a > list_list_a > $o] :
      ( ( lexordp_eq_list_a @ Less @ X12 @ X23 )
     => ( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
       => ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
              ( ( Less @ X @ Y3 )
             => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
         => ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
                ( ~ ( Less @ X @ Y3 )
               => ( ~ ( Less @ Y3 @ X )
                 => ( ( lexordp_eq_list_a @ Less @ Xs2 @ Ys3 )
                   => ( ( P @ Xs2 @ Ys3 )
                     => ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) ) )
           => ( P @ X12 @ X23 ) ) ) ) ) ).

% ord.lexordp_eq.inducts
thf(fact_104_ord_Olexordp__eq_Oinducts,axiom,
    ! [Less: a > a > $o,X12: list_a,X23: list_a,P: list_a > list_a > $o] :
      ( ( lexordp_eq_a @ Less @ X12 @ X23 )
     => ( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
       => ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
              ( ( Less @ X @ Y3 )
             => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
         => ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
                ( ~ ( Less @ X @ Y3 )
               => ( ~ ( Less @ Y3 @ X )
                 => ( ( lexordp_eq_a @ Less @ Xs2 @ Ys3 )
                   => ( ( P @ Xs2 @ Ys3 )
                     => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) ) )
           => ( P @ X12 @ X23 ) ) ) ) ) ).

% ord.lexordp_eq.inducts
thf(fact_105_product__lists_Osimps_I1_J,axiom,
    ( ( product_lists_list_a @ nil_list_list_a )
    = ( cons_list_list_a @ nil_list_a @ nil_list_list_a ) ) ).

% product_lists.simps(1)
thf(fact_106_product__lists_Osimps_I1_J,axiom,
    ( ( product_lists_a @ nil_list_a )
    = ( cons_list_a @ nil_a @ nil_list_a ) ) ).

% product_lists.simps(1)
thf(fact_107_subseqs_Osimps_I1_J,axiom,
    ( ( subseqs_list_a @ nil_list_a )
    = ( cons_list_list_a @ nil_list_a @ nil_list_list_a ) ) ).

% subseqs.simps(1)
thf(fact_108_subseqs_Osimps_I1_J,axiom,
    ( ( subseqs_a @ nil_a )
    = ( cons_list_a @ nil_a @ nil_list_a ) ) ).

% subseqs.simps(1)
thf(fact_109_lexordp__eq_Ocases,axiom,
    ! [A1: list_nat,A2: list_nat] :
      ( ( ord_lexordp_eq_nat @ A1 @ A2 )
     => ( ( A1 != nil_nat )
       => ( ! [X: nat] :
              ( ? [Xs2: list_nat] :
                  ( A1
                  = ( cons_nat @ X @ Xs2 ) )
             => ! [Y3: nat] :
                  ( ? [Ys3: list_nat] :
                      ( A2
                      = ( cons_nat @ Y3 @ Ys3 ) )
                 => ~ ( ord_less_nat @ X @ Y3 ) ) )
         => ~ ! [X: nat,Y3: nat,Xs2: list_nat] :
                ( ( A1
                  = ( cons_nat @ X @ Xs2 ) )
               => ! [Ys3: list_nat] :
                    ( ( A2
                      = ( cons_nat @ Y3 @ Ys3 ) )
                   => ( ~ ( ord_less_nat @ X @ Y3 )
                     => ( ~ ( ord_less_nat @ Y3 @ X )
                       => ~ ( ord_lexordp_eq_nat @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).

% lexordp_eq.cases
thf(fact_110_lexordp__eq_Osimps,axiom,
    ( ord_lexordp_eq_nat
    = ( ^ [A12: list_nat,A22: list_nat] :
          ( ? [Ys: list_nat] :
              ( ( A12 = nil_nat )
              & ( A22 = Ys ) )
          | ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
              ( ( A12
                = ( cons_nat @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_nat @ Y2 @ Ys ) )
              & ( ord_less_nat @ X4 @ Y2 ) )
          | ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
              ( ( A12
                = ( cons_nat @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_nat @ Y2 @ Ys ) )
              & ~ ( ord_less_nat @ X4 @ Y2 )
              & ~ ( ord_less_nat @ Y2 @ X4 )
              & ( ord_lexordp_eq_nat @ Xs3 @ Ys ) ) ) ) ) ).

% lexordp_eq.simps
thf(fact_111_lexordp__eq_Oinducts,axiom,
    ! [X12: list_nat,X23: list_nat,P: list_nat > list_nat > $o] :
      ( ( ord_lexordp_eq_nat @ X12 @ X23 )
     => ( ! [X_1: list_nat] : ( P @ nil_nat @ X_1 )
       => ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
              ( ( ord_less_nat @ X @ Y3 )
             => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
         => ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
                ( ~ ( ord_less_nat @ X @ Y3 )
               => ( ~ ( ord_less_nat @ Y3 @ X )
                 => ( ( ord_lexordp_eq_nat @ Xs2 @ Ys3 )
                   => ( ( P @ Xs2 @ Ys3 )
                     => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) ) ) ) )
           => ( P @ X12 @ X23 ) ) ) ) ) ).

% lexordp_eq.inducts
thf(fact_112_member__rec_I2_J,axiom,
    ! [Y: list_a] :
      ~ ( member_list_a @ nil_list_a @ Y ) ).

% member_rec(2)
thf(fact_113_member__rec_I2_J,axiom,
    ! [Y: a] :
      ~ ( member_a @ nil_a @ Y ) ).

% member_rec(2)
thf(fact_114_member__rec_I1_J,axiom,
    ! [X3: list_a,Xs: list_list_a,Y: list_a] :
      ( ( member_list_a @ ( cons_list_a @ X3 @ Xs ) @ Y )
      = ( ( X3 = Y )
        | ( member_list_a @ Xs @ Y ) ) ) ).

% member_rec(1)
thf(fact_115_member__rec_I1_J,axiom,
    ! [X3: a,Xs: list_a,Y: a] :
      ( ( member_a @ ( cons_a @ X3 @ Xs ) @ Y )
      = ( ( X3 = Y )
        | ( member_a @ Xs @ Y ) ) ) ).

% member_rec(1)
thf(fact_116_splice_Oelims,axiom,
    ! [X3: list_list_a,Xa: list_list_a,Y: list_list_a] :
      ( ( ( splice_list_a @ X3 @ Xa )
        = Y )
     => ( ( ( X3 = nil_list_a )
         => ( Y != Xa ) )
       => ~ ! [X: list_a,Xs2: list_list_a] :
              ( ( X3
                = ( cons_list_a @ X @ Xs2 ) )
             => ( Y
               != ( cons_list_a @ X @ ( splice_list_a @ Xa @ Xs2 ) ) ) ) ) ) ).

% splice.elims
thf(fact_117_splice_Oelims,axiom,
    ! [X3: list_a,Xa: list_a,Y: list_a] :
      ( ( ( splice_a @ X3 @ Xa )
        = Y )
     => ( ( ( X3 = nil_a )
         => ( Y != Xa ) )
       => ~ ! [X: a,Xs2: list_a] :
              ( ( X3
                = ( cons_a @ X @ Xs2 ) )
             => ( Y
               != ( cons_a @ X @ ( splice_a @ Xa @ Xs2 ) ) ) ) ) ) ).

% splice.elims
thf(fact_118_bind__simps_I2_J,axiom,
    ! [X3: a,Xs: list_a,F: a > list_a] :
      ( ( bind_a_a @ ( cons_a @ X3 @ Xs ) @ F )
      = ( append_a @ ( F @ X3 ) @ ( bind_a_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_119_bind__simps_I2_J,axiom,
    ! [X3: a,Xs: list_a,F: a > list_list_a] :
      ( ( bind_a_list_a @ ( cons_a @ X3 @ Xs ) @ F )
      = ( append_list_a @ ( F @ X3 ) @ ( bind_a_list_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_120_bind__simps_I2_J,axiom,
    ! [X3: list_a,Xs: list_list_a,F: list_a > list_a] :
      ( ( bind_list_a_a @ ( cons_list_a @ X3 @ Xs ) @ F )
      = ( append_a @ ( F @ X3 ) @ ( bind_list_a_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_121_bind__simps_I2_J,axiom,
    ! [X3: list_a,Xs: list_list_a,F: list_a > list_list_a] :
      ( ( bind_list_a_list_a @ ( cons_list_a @ X3 @ Xs ) @ F )
      = ( append_list_a @ ( F @ X3 ) @ ( bind_list_a_list_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_122_same__append__eq,axiom,
    ! [Xs: list_a,Ys2: list_a,Zs2: list_a] :
      ( ( ( append_a @ Xs @ Ys2 )
        = ( append_a @ Xs @ Zs2 ) )
      = ( Ys2 = Zs2 ) ) ).

% same_append_eq
thf(fact_123_same__append__eq,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
      ( ( ( append_list_a @ Xs @ Ys2 )
        = ( append_list_a @ Xs @ Zs2 ) )
      = ( Ys2 = Zs2 ) ) ).

% same_append_eq
thf(fact_124_append__same__eq,axiom,
    ! [Ys2: list_a,Xs: list_a,Zs2: list_a] :
      ( ( ( append_a @ Ys2 @ Xs )
        = ( append_a @ Zs2 @ Xs ) )
      = ( Ys2 = Zs2 ) ) ).

% append_same_eq
thf(fact_125_append__same__eq,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a,Zs2: list_list_a] :
      ( ( ( append_list_a @ Ys2 @ Xs )
        = ( append_list_a @ Zs2 @ Xs ) )
      = ( Ys2 = Zs2 ) ) ).

% append_same_eq
thf(fact_126_append__assoc,axiom,
    ! [Xs: list_a,Ys2: list_a,Zs2: list_a] :
      ( ( append_a @ ( append_a @ Xs @ Ys2 ) @ Zs2 )
      = ( append_a @ Xs @ ( append_a @ Ys2 @ Zs2 ) ) ) ).

% append_assoc
thf(fact_127_append__assoc,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
      ( ( append_list_a @ ( append_list_a @ Xs @ Ys2 ) @ Zs2 )
      = ( append_list_a @ Xs @ ( append_list_a @ Ys2 @ Zs2 ) ) ) ).

% append_assoc
thf(fact_128_append_Oassoc,axiom,
    ! [A3: list_a,B: list_a,C: list_a] :
      ( ( append_a @ ( append_a @ A3 @ B ) @ C )
      = ( append_a @ A3 @ ( append_a @ B @ C ) ) ) ).

% append.assoc
thf(fact_129_append_Oassoc,axiom,
    ! [A3: list_list_a,B: list_list_a,C: list_list_a] :
      ( ( append_list_a @ ( append_list_a @ A3 @ B ) @ C )
      = ( append_list_a @ A3 @ ( append_list_a @ B @ C ) ) ) ).

% append.assoc
thf(fact_130_append_Oright__neutral,axiom,
    ! [A3: list_list_a] :
      ( ( append_list_a @ A3 @ nil_list_a )
      = A3 ) ).

% append.right_neutral
thf(fact_131_append_Oright__neutral,axiom,
    ! [A3: list_a] :
      ( ( append_a @ A3 @ nil_a )
      = A3 ) ).

% append.right_neutral
thf(fact_132_append__is__Nil__conv,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( ( append_list_a @ Xs @ Ys2 )
        = nil_list_a )
      = ( ( Xs = nil_list_a )
        & ( Ys2 = nil_list_a ) ) ) ).

% append_is_Nil_conv
thf(fact_133_append__is__Nil__conv,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( append_a @ Xs @ Ys2 )
        = nil_a )
      = ( ( Xs = nil_a )
        & ( Ys2 = nil_a ) ) ) ).

% append_is_Nil_conv
thf(fact_134_Nil__is__append__conv,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( nil_list_a
        = ( append_list_a @ Xs @ Ys2 ) )
      = ( ( Xs = nil_list_a )
        & ( Ys2 = nil_list_a ) ) ) ).

% Nil_is_append_conv
thf(fact_135_Nil__is__append__conv,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( nil_a
        = ( append_a @ Xs @ Ys2 ) )
      = ( ( Xs = nil_a )
        & ( Ys2 = nil_a ) ) ) ).

% Nil_is_append_conv
thf(fact_136_self__append__conv2,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a] :
      ( ( Ys2
        = ( append_list_a @ Xs @ Ys2 ) )
      = ( Xs = nil_list_a ) ) ).

% self_append_conv2
thf(fact_137_self__append__conv2,axiom,
    ! [Ys2: list_a,Xs: list_a] :
      ( ( Ys2
        = ( append_a @ Xs @ Ys2 ) )
      = ( Xs = nil_a ) ) ).

% self_append_conv2
thf(fact_138_append__self__conv2,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( ( append_list_a @ Xs @ Ys2 )
        = Ys2 )
      = ( Xs = nil_list_a ) ) ).

% append_self_conv2
thf(fact_139_append__self__conv2,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( append_a @ Xs @ Ys2 )
        = Ys2 )
      = ( Xs = nil_a ) ) ).

% append_self_conv2
thf(fact_140_self__append__conv,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( Xs
        = ( append_list_a @ Xs @ Ys2 ) )
      = ( Ys2 = nil_list_a ) ) ).

% self_append_conv
thf(fact_141_self__append__conv,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( Xs
        = ( append_a @ Xs @ Ys2 ) )
      = ( Ys2 = nil_a ) ) ).

% self_append_conv
thf(fact_142_append__self__conv,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( ( append_list_a @ Xs @ Ys2 )
        = Xs )
      = ( Ys2 = nil_list_a ) ) ).

% append_self_conv
thf(fact_143_append__self__conv,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( append_a @ Xs @ Ys2 )
        = Xs )
      = ( Ys2 = nil_a ) ) ).

% append_self_conv
thf(fact_144_append__Nil2,axiom,
    ! [Xs: list_list_a] :
      ( ( append_list_a @ Xs @ nil_list_a )
      = Xs ) ).

% append_Nil2
thf(fact_145_append__Nil2,axiom,
    ! [Xs: list_a] :
      ( ( append_a @ Xs @ nil_a )
      = Xs ) ).

% append_Nil2
thf(fact_146_split__Nil__iff,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( ( splice_list_a @ Xs @ Ys2 )
        = nil_list_a )
      = ( ( Xs = nil_list_a )
        & ( Ys2 = nil_list_a ) ) ) ).

% split_Nil_iff
thf(fact_147_split__Nil__iff,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( splice_a @ Xs @ Ys2 )
        = nil_a )
      = ( ( Xs = nil_a )
        & ( Ys2 = nil_a ) ) ) ).

% split_Nil_iff
thf(fact_148_splice__Nil2,axiom,
    ! [Xs: list_list_a] :
      ( ( splice_list_a @ Xs @ nil_list_a )
      = Xs ) ).

% splice_Nil2
thf(fact_149_splice__Nil2,axiom,
    ! [Xs: list_a] :
      ( ( splice_a @ Xs @ nil_a )
      = Xs ) ).

% splice_Nil2
thf(fact_150_i__append__assoc,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a,F: nat > list_a] :
      ( ( listIn1753026346list_a @ Xs @ ( listIn1753026346list_a @ Ys2 @ F ) )
      = ( listIn1753026346list_a @ ( append_list_a @ Xs @ Ys2 ) @ F ) ) ).

% i_append_assoc
thf(fact_151_i__append__assoc,axiom,
    ! [Xs: list_a,Ys2: list_a,F: nat > a] :
      ( ( listIn1312259492pend_a @ Xs @ ( listIn1312259492pend_a @ Ys2 @ F ) )
      = ( listIn1312259492pend_a @ ( append_a @ Xs @ Ys2 ) @ F ) ) ).

% i_append_assoc
thf(fact_152_append1__eq__conv,axiom,
    ! [Xs: list_list_a,X3: list_a,Ys2: list_list_a,Y: list_a] :
      ( ( ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) )
        = ( append_list_a @ Ys2 @ ( cons_list_a @ Y @ nil_list_a ) ) )
      = ( ( Xs = Ys2 )
        & ( X3 = Y ) ) ) ).

% append1_eq_conv
thf(fact_153_append1__eq__conv,axiom,
    ! [Xs: list_a,X3: a,Ys2: list_a,Y: a] :
      ( ( ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) )
        = ( append_a @ Ys2 @ ( cons_a @ Y @ nil_a ) ) )
      = ( ( Xs = Ys2 )
        & ( X3 = Y ) ) ) ).

% append1_eq_conv
thf(fact_154_lexordp__eq__simps_I4_J,axiom,
    ! [X3: nat,Xs: list_nat,Y: nat,Ys2: list_nat] :
      ( ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) )
      = ( ( ord_less_nat @ X3 @ Y )
        | ( ~ ( ord_less_nat @ Y @ X3 )
          & ( ord_lexordp_eq_nat @ Xs @ Ys2 ) ) ) ) ).

% lexordp_eq_simps(4)
thf(fact_155_append__eq__append__conv2,axiom,
    ! [Xs: list_a,Ys2: list_a,Zs2: list_a,Ts: list_a] :
      ( ( ( append_a @ Xs @ Ys2 )
        = ( append_a @ Zs2 @ Ts ) )
      = ( ? [Us: list_a] :
            ( ( ( Xs
                = ( append_a @ Zs2 @ Us ) )
              & ( ( append_a @ Us @ Ys2 )
                = Ts ) )
            | ( ( ( append_a @ Xs @ Us )
                = Zs2 )
              & ( Ys2
                = ( append_a @ Us @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_156_append__eq__append__conv2,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a,Ts: list_list_a] :
      ( ( ( append_list_a @ Xs @ Ys2 )
        = ( append_list_a @ Zs2 @ Ts ) )
      = ( ? [Us: list_list_a] :
            ( ( ( Xs
                = ( append_list_a @ Zs2 @ Us ) )
              & ( ( append_list_a @ Us @ Ys2 )
                = Ts ) )
            | ( ( ( append_list_a @ Xs @ Us )
                = Zs2 )
              & ( Ys2
                = ( append_list_a @ Us @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_157_append__eq__appendI,axiom,
    ! [Xs: list_a,Xs1: list_a,Zs2: list_a,Ys2: list_a,Us2: list_a] :
      ( ( ( append_a @ Xs @ Xs1 )
        = Zs2 )
     => ( ( Ys2
          = ( append_a @ Xs1 @ Us2 ) )
       => ( ( append_a @ Xs @ Ys2 )
          = ( append_a @ Zs2 @ Us2 ) ) ) ) ).

% append_eq_appendI
thf(fact_158_append__eq__appendI,axiom,
    ! [Xs: list_list_a,Xs1: list_list_a,Zs2: list_list_a,Ys2: list_list_a,Us2: list_list_a] :
      ( ( ( append_list_a @ Xs @ Xs1 )
        = Zs2 )
     => ( ( Ys2
          = ( append_list_a @ Xs1 @ Us2 ) )
       => ( ( append_list_a @ Xs @ Ys2 )
          = ( append_list_a @ Zs2 @ Us2 ) ) ) ) ).

% append_eq_appendI
thf(fact_159_append__Cons,axiom,
    ! [X3: list_a,Xs: list_list_a,Ys2: list_list_a] :
      ( ( append_list_a @ ( cons_list_a @ X3 @ Xs ) @ Ys2 )
      = ( cons_list_a @ X3 @ ( append_list_a @ Xs @ Ys2 ) ) ) ).

% append_Cons
thf(fact_160_append__Cons,axiom,
    ! [X3: a,Xs: list_a,Ys2: list_a] :
      ( ( append_a @ ( cons_a @ X3 @ Xs ) @ Ys2 )
      = ( cons_a @ X3 @ ( append_a @ Xs @ Ys2 ) ) ) ).

% append_Cons
thf(fact_161_Cons__eq__appendI,axiom,
    ! [X3: list_a,Xs1: list_list_a,Ys2: list_list_a,Xs: list_list_a,Zs2: list_list_a] :
      ( ( ( cons_list_a @ X3 @ Xs1 )
        = Ys2 )
     => ( ( Xs
          = ( append_list_a @ Xs1 @ Zs2 ) )
       => ( ( cons_list_a @ X3 @ Xs )
          = ( append_list_a @ Ys2 @ Zs2 ) ) ) ) ).

% Cons_eq_appendI
thf(fact_162_Cons__eq__appendI,axiom,
    ! [X3: a,Xs1: list_a,Ys2: list_a,Xs: list_a,Zs2: list_a] :
      ( ( ( cons_a @ X3 @ Xs1 )
        = Ys2 )
     => ( ( Xs
          = ( append_a @ Xs1 @ Zs2 ) )
       => ( ( cons_a @ X3 @ Xs )
          = ( append_a @ Ys2 @ Zs2 ) ) ) ) ).

% Cons_eq_appendI
thf(fact_163_append_Oleft__neutral,axiom,
    ! [A3: list_list_a] :
      ( ( append_list_a @ nil_list_a @ A3 )
      = A3 ) ).

% append.left_neutral
thf(fact_164_append_Oleft__neutral,axiom,
    ! [A3: list_a] :
      ( ( append_a @ nil_a @ A3 )
      = A3 ) ).

% append.left_neutral
thf(fact_165_append__Nil,axiom,
    ! [Ys2: list_list_a] :
      ( ( append_list_a @ nil_list_a @ Ys2 )
      = Ys2 ) ).

% append_Nil
thf(fact_166_append__Nil,axiom,
    ! [Ys2: list_a] :
      ( ( append_a @ nil_a @ Ys2 )
      = Ys2 ) ).

% append_Nil
thf(fact_167_eq__Nil__appendI,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( Xs = Ys2 )
     => ( Xs
        = ( append_list_a @ nil_list_a @ Ys2 ) ) ) ).

% eq_Nil_appendI
thf(fact_168_eq__Nil__appendI,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( Xs = Ys2 )
     => ( Xs
        = ( append_a @ nil_a @ Ys2 ) ) ) ).

% eq_Nil_appendI
thf(fact_169_ord_Olexordp__eq__pref,axiom,
    ! [Less: list_a > list_a > $o,U: list_list_a,V: list_list_a] : ( lexordp_eq_list_a @ Less @ U @ ( append_list_a @ U @ V ) ) ).

% ord.lexordp_eq_pref
thf(fact_170_ord_Olexordp__eq__pref,axiom,
    ! [Less: a > a > $o,U: list_a,V: list_a] : ( lexordp_eq_a @ Less @ U @ ( append_a @ U @ V ) ) ).

% ord.lexordp_eq_pref
thf(fact_171_splice_Osimps_I2_J,axiom,
    ! [X3: list_a,Xs: list_list_a,Ys2: list_list_a] :
      ( ( splice_list_a @ ( cons_list_a @ X3 @ Xs ) @ Ys2 )
      = ( cons_list_a @ X3 @ ( splice_list_a @ Ys2 @ Xs ) ) ) ).

% splice.simps(2)
thf(fact_172_splice_Osimps_I2_J,axiom,
    ! [X3: a,Xs: list_a,Ys2: list_a] :
      ( ( splice_a @ ( cons_a @ X3 @ Xs ) @ Ys2 )
      = ( cons_a @ X3 @ ( splice_a @ Ys2 @ Xs ) ) ) ).

% splice.simps(2)
thf(fact_173_splice_Osimps_I1_J,axiom,
    ! [Ys2: list_list_a] :
      ( ( splice_list_a @ nil_list_a @ Ys2 )
      = Ys2 ) ).

% splice.simps(1)
thf(fact_174_splice_Osimps_I1_J,axiom,
    ! [Ys2: list_a] :
      ( ( splice_a @ nil_a @ Ys2 )
      = Ys2 ) ).

% splice.simps(1)
thf(fact_175_rev__nonempty__induct,axiom,
    ! [Xs: list_list_a,P: list_list_a > $o] :
      ( ( Xs != nil_list_a )
     => ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
       => ( ! [X: list_a,Xs2: list_list_a] :
              ( ( Xs2 != nil_list_a )
             => ( ( P @ Xs2 )
               => ( P @ ( append_list_a @ Xs2 @ ( cons_list_a @ X @ nil_list_a ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_176_rev__nonempty__induct,axiom,
    ! [Xs: list_a,P: list_a > $o] :
      ( ( Xs != nil_a )
     => ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
       => ( ! [X: a,Xs2: list_a] :
              ( ( Xs2 != nil_a )
             => ( ( P @ Xs2 )
               => ( P @ ( append_a @ Xs2 @ ( cons_a @ X @ nil_a ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_177_append__eq__Cons__conv,axiom,
    ! [Ys2: list_list_a,Zs2: list_list_a,X3: list_a,Xs: list_list_a] :
      ( ( ( append_list_a @ Ys2 @ Zs2 )
        = ( cons_list_a @ X3 @ Xs ) )
      = ( ( ( Ys2 = nil_list_a )
          & ( Zs2
            = ( cons_list_a @ X3 @ Xs ) ) )
        | ? [Ys4: list_list_a] :
            ( ( Ys2
              = ( cons_list_a @ X3 @ Ys4 ) )
            & ( ( append_list_a @ Ys4 @ Zs2 )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_178_append__eq__Cons__conv,axiom,
    ! [Ys2: list_a,Zs2: list_a,X3: a,Xs: list_a] :
      ( ( ( append_a @ Ys2 @ Zs2 )
        = ( cons_a @ X3 @ Xs ) )
      = ( ( ( Ys2 = nil_a )
          & ( Zs2
            = ( cons_a @ X3 @ Xs ) ) )
        | ? [Ys4: list_a] :
            ( ( Ys2
              = ( cons_a @ X3 @ Ys4 ) )
            & ( ( append_a @ Ys4 @ Zs2 )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_179_Cons__eq__append__conv,axiom,
    ! [X3: list_a,Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
      ( ( ( cons_list_a @ X3 @ Xs )
        = ( append_list_a @ Ys2 @ Zs2 ) )
      = ( ( ( Ys2 = nil_list_a )
          & ( ( cons_list_a @ X3 @ Xs )
            = Zs2 ) )
        | ? [Ys4: list_list_a] :
            ( ( ( cons_list_a @ X3 @ Ys4 )
              = Ys2 )
            & ( Xs
              = ( append_list_a @ Ys4 @ Zs2 ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_180_Cons__eq__append__conv,axiom,
    ! [X3: a,Xs: list_a,Ys2: list_a,Zs2: list_a] :
      ( ( ( cons_a @ X3 @ Xs )
        = ( append_a @ Ys2 @ Zs2 ) )
      = ( ( ( Ys2 = nil_a )
          & ( ( cons_a @ X3 @ Xs )
            = Zs2 ) )
        | ? [Ys4: list_a] :
            ( ( ( cons_a @ X3 @ Ys4 )
              = Ys2 )
            & ( Xs
              = ( append_a @ Ys4 @ Zs2 ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_181_rev__exhaust,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
     => ~ ! [Ys3: list_list_a,Y3: list_a] :
            ( Xs
           != ( append_list_a @ Ys3 @ ( cons_list_a @ Y3 @ nil_list_a ) ) ) ) ).

% rev_exhaust
thf(fact_182_rev__exhaust,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ~ ! [Ys3: list_a,Y3: a] :
            ( Xs
           != ( append_a @ Ys3 @ ( cons_a @ Y3 @ nil_a ) ) ) ) ).

% rev_exhaust
thf(fact_183_rev__induct,axiom,
    ! [P: list_list_a > $o,Xs: list_list_a] :
      ( ( P @ nil_list_a )
     => ( ! [X: list_a,Xs2: list_list_a] :
            ( ( P @ Xs2 )
           => ( P @ ( append_list_a @ Xs2 @ ( cons_list_a @ X @ nil_list_a ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_184_rev__induct,axiom,
    ! [P: list_a > $o,Xs: list_a] :
      ( ( P @ nil_a )
     => ( ! [X: a,Xs2: list_a] :
            ( ( P @ Xs2 )
           => ( P @ ( append_a @ Xs2 @ ( cons_a @ X @ nil_a ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_185_append__eq__Cons,axiom,
    ! [X3: list_a,Xs: list_list_a] :
      ( ( append_list_a @ ( cons_list_a @ X3 @ nil_list_a ) @ Xs )
      = ( cons_list_a @ X3 @ Xs ) ) ).

% append_eq_Cons
thf(fact_186_append__eq__Cons,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( append_a @ ( cons_a @ X3 @ nil_a ) @ Xs )
      = ( cons_a @ X3 @ Xs ) ) ).

% append_eq_Cons
thf(fact_187_lexordp__eq_OCons,axiom,
    ! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
      ( ( ord_less_nat @ X3 @ Y )
     => ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ).

% lexordp_eq.Cons
thf(fact_188_lexordp__eq_OCons__eq,axiom,
    ! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
      ( ~ ( ord_less_nat @ X3 @ Y )
     => ( ~ ( ord_less_nat @ Y @ X3 )
       => ( ( ord_lexordp_eq_nat @ Xs @ Ys2 )
         => ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ) ) ).

% lexordp_eq.Cons_eq
thf(fact_189_maps__simps_I1_J,axiom,
    ! [F: a > list_a,X3: a,Xs: list_a] :
      ( ( maps_a_a @ F @ ( cons_a @ X3 @ Xs ) )
      = ( append_a @ ( F @ X3 ) @ ( maps_a_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_190_maps__simps_I1_J,axiom,
    ! [F: a > list_list_a,X3: a,Xs: list_a] :
      ( ( maps_a_list_a @ F @ ( cons_a @ X3 @ Xs ) )
      = ( append_list_a @ ( F @ X3 ) @ ( maps_a_list_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_191_maps__simps_I1_J,axiom,
    ! [F: list_a > list_a,X3: list_a,Xs: list_list_a] :
      ( ( maps_list_a_a @ F @ ( cons_list_a @ X3 @ Xs ) )
      = ( append_a @ ( F @ X3 ) @ ( maps_list_a_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_192_maps__simps_I1_J,axiom,
    ! [F: list_a > list_list_a,X3: list_a,Xs: list_list_a] :
      ( ( maps_list_a_list_a @ F @ ( cons_list_a @ X3 @ Xs ) )
      = ( append_list_a @ ( F @ X3 ) @ ( maps_list_a_list_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_193_concat__eq__append__conv,axiom,
    ! [Xss2: list_list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
      ( ( ( concat_list_a @ Xss2 )
        = ( append_list_a @ Ys2 @ Zs2 ) )
      = ( ( ( Xss2 = nil_list_list_a )
         => ( ( Ys2 = nil_list_a )
            & ( Zs2 = nil_list_a ) ) )
        & ( ( Xss2 != nil_list_list_a )
         => ? [Xss1: list_list_list_a,Xs3: list_list_a,Xs4: list_list_a,Xss22: list_list_list_a] :
              ( ( Xss2
                = ( append_list_list_a @ Xss1 @ ( cons_list_list_a @ ( append_list_a @ Xs3 @ Xs4 ) @ Xss22 ) ) )
              & ( Ys2
                = ( append_list_a @ ( concat_list_a @ Xss1 ) @ Xs3 ) )
              & ( Zs2
                = ( append_list_a @ Xs4 @ ( concat_list_a @ Xss22 ) ) ) ) ) ) ) ).

% concat_eq_append_conv
thf(fact_194_concat__eq__append__conv,axiom,
    ! [Xss2: list_list_a,Ys2: list_a,Zs2: list_a] :
      ( ( ( concat_a @ Xss2 )
        = ( append_a @ Ys2 @ Zs2 ) )
      = ( ( ( Xss2 = nil_list_a )
         => ( ( Ys2 = nil_a )
            & ( Zs2 = nil_a ) ) )
        & ( ( Xss2 != nil_list_a )
         => ? [Xss1: list_list_a,Xs3: list_a,Xs4: list_a,Xss22: list_list_a] :
              ( ( Xss2
                = ( append_list_a @ Xss1 @ ( cons_list_a @ ( append_a @ Xs3 @ Xs4 ) @ Xss22 ) ) )
              & ( Ys2
                = ( append_a @ ( concat_a @ Xss1 ) @ Xs3 ) )
              & ( Zs2
                = ( append_a @ Xs4 @ ( concat_a @ Xss22 ) ) ) ) ) ) ) ).

% concat_eq_append_conv
thf(fact_195_rotate1_Osimps_I2_J,axiom,
    ! [X3: list_a,Xs: list_list_a] :
      ( ( rotate1_list_a @ ( cons_list_a @ X3 @ Xs ) )
      = ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) ) ).

% rotate1.simps(2)
thf(fact_196_rotate1_Osimps_I2_J,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( rotate1_a @ ( cons_a @ X3 @ Xs ) )
      = ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) ) ).

% rotate1.simps(2)
thf(fact_197_butlast__snoc,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( butlast_list_a @ ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_198_butlast__snoc,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( butlast_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_199_last__snoc,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( last_list_a @ ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) )
      = X3 ) ).

% last_snoc
thf(fact_200_last__snoc,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( last_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) )
      = X3 ) ).

% last_snoc
thf(fact_201_SuccI,axiom,
    ! [Kl: list_list_a,K: list_a,Kl2: set_list_list_a] :
      ( ( member_list_list_a @ ( append_list_a @ Kl @ ( cons_list_a @ K @ nil_list_a ) ) @ Kl2 )
     => ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ Kl ) ) ) ).

% SuccI
thf(fact_202_SuccI,axiom,
    ! [Kl: list_a,K: a,Kl2: set_list_a] :
      ( ( member_list_a2 @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 )
     => ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) ) ) ).

% SuccI
thf(fact_203_SuccD,axiom,
    ! [K: list_a,Kl2: set_list_list_a,Kl: list_list_a] :
      ( ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ Kl ) )
     => ( member_list_list_a @ ( append_list_a @ Kl @ ( cons_list_a @ K @ nil_list_a ) ) @ Kl2 ) ) ).

% SuccD
thf(fact_204_SuccD,axiom,
    ! [K: a,Kl2: set_list_a,Kl: list_a] :
      ( ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) )
     => ( member_list_a2 @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 ) ) ).

% SuccD
thf(fact_205_rotate1__is__Nil__conv,axiom,
    ! [Xs: list_list_a] :
      ( ( ( rotate1_list_a @ Xs )
        = nil_list_a )
      = ( Xs = nil_list_a ) ) ).

% rotate1_is_Nil_conv
thf(fact_206_rotate1__is__Nil__conv,axiom,
    ! [Xs: list_a] :
      ( ( ( rotate1_a @ Xs )
        = nil_a )
      = ( Xs = nil_a ) ) ).

% rotate1_is_Nil_conv
thf(fact_207_last__appendL,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a] :
      ( ( Ys2 = nil_list_a )
     => ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
        = ( last_list_a @ Xs ) ) ) ).

% last_appendL
thf(fact_208_last__appendL,axiom,
    ! [Ys2: list_a,Xs: list_a] :
      ( ( Ys2 = nil_a )
     => ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
        = ( last_a @ Xs ) ) ) ).

% last_appendL
thf(fact_209_last__appendR,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a] :
      ( ( Ys2 != nil_list_a )
     => ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
        = ( last_list_a @ Ys2 ) ) ) ).

% last_appendR
thf(fact_210_last__appendR,axiom,
    ! [Ys2: list_a,Xs: list_a] :
      ( ( Ys2 != nil_a )
     => ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
        = ( last_a @ Ys2 ) ) ) ).

% last_appendR
thf(fact_211_concat__append,axiom,
    ! [Xs: list_list_list_a,Ys2: list_list_list_a] :
      ( ( concat_list_a @ ( append_list_list_a @ Xs @ Ys2 ) )
      = ( append_list_a @ ( concat_list_a @ Xs ) @ ( concat_list_a @ Ys2 ) ) ) ).

% concat_append
thf(fact_212_concat__append,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( concat_a @ ( append_list_a @ Xs @ Ys2 ) )
      = ( append_a @ ( concat_a @ Xs ) @ ( concat_a @ Ys2 ) ) ) ).

% concat_append
thf(fact_213_append__butlast__last__id,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( append_list_a @ ( butlast_list_a @ Xs ) @ ( cons_list_a @ ( last_list_a @ Xs ) @ nil_list_a ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_214_append__butlast__last__id,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( append_a @ ( butlast_a @ Xs ) @ ( cons_a @ ( last_a @ Xs ) @ nil_a ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_215_butlast_Osimps_I1_J,axiom,
    ( ( butlast_list_a @ nil_list_a )
    = nil_list_a ) ).

% butlast.simps(1)
thf(fact_216_butlast_Osimps_I1_J,axiom,
    ( ( butlast_a @ nil_a )
    = nil_a ) ).

% butlast.simps(1)
thf(fact_217_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_list_a,X3: list_a,Ys2: list_list_a] :
      ( ( ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) )
        = Ys2 )
      = ( ( Ys2 != nil_list_a )
        & ( ( butlast_list_a @ Ys2 )
          = Xs )
        & ( ( last_list_a @ Ys2 )
          = X3 ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_218_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_a,X3: a,Ys2: list_a] :
      ( ( ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) )
        = Ys2 )
      = ( ( Ys2 != nil_a )
        & ( ( butlast_a @ Ys2 )
          = Xs )
        & ( ( last_a @ Ys2 )
          = X3 ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_219_rotate1_Osimps_I1_J,axiom,
    ( ( rotate1_list_a @ nil_list_a )
    = nil_list_a ) ).

% rotate1.simps(1)
thf(fact_220_rotate1_Osimps_I1_J,axiom,
    ( ( rotate1_a @ nil_a )
    = nil_a ) ).

% rotate1.simps(1)
thf(fact_221_last_Osimps,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( ( Xs = nil_list_a )
       => ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
          = X3 ) )
      & ( ( Xs != nil_list_a )
       => ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
          = ( last_list_a @ Xs ) ) ) ) ).

% last.simps
thf(fact_222_last_Osimps,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( ( Xs = nil_a )
       => ( ( last_a @ ( cons_a @ X3 @ Xs ) )
          = X3 ) )
      & ( ( Xs != nil_a )
       => ( ( last_a @ ( cons_a @ X3 @ Xs ) )
          = ( last_a @ Xs ) ) ) ) ).

% last.simps
thf(fact_223_last__ConsL,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( Xs = nil_list_a )
     => ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
        = X3 ) ) ).

% last_ConsL
thf(fact_224_last__ConsL,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( Xs = nil_a )
     => ( ( last_a @ ( cons_a @ X3 @ Xs ) )
        = X3 ) ) ).

% last_ConsL
thf(fact_225_last__ConsR,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( Xs != nil_list_a )
     => ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
        = ( last_list_a @ Xs ) ) ) ).

% last_ConsR
thf(fact_226_last__ConsR,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( Xs != nil_a )
     => ( ( last_a @ ( cons_a @ X3 @ Xs ) )
        = ( last_a @ Xs ) ) ) ).

% last_ConsR
thf(fact_227_last__append,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a] :
      ( ( ( Ys2 = nil_list_a )
       => ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( last_list_a @ Xs ) ) )
      & ( ( Ys2 != nil_list_a )
       => ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( last_list_a @ Ys2 ) ) ) ) ).

% last_append
thf(fact_228_last__append,axiom,
    ! [Ys2: list_a,Xs: list_a] :
      ( ( ( Ys2 = nil_a )
       => ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
          = ( last_a @ Xs ) ) )
      & ( ( Ys2 != nil_a )
       => ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
          = ( last_a @ Ys2 ) ) ) ) ).

% last_append
thf(fact_229_longest__common__suffix,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
    ? [Ss: list_list_a,Xs5: list_list_a,Ys5: list_list_a] :
      ( ( Xs
        = ( append_list_a @ Xs5 @ Ss ) )
      & ( Ys2
        = ( append_list_a @ Ys5 @ Ss ) )
      & ( ( Xs5 = nil_list_a )
        | ( Ys5 = nil_list_a )
        | ( ( last_list_a @ Xs5 )
         != ( last_list_a @ Ys5 ) ) ) ) ).

% longest_common_suffix
thf(fact_230_longest__common__suffix,axiom,
    ! [Xs: list_a,Ys2: list_a] :
    ? [Ss: list_a,Xs5: list_a,Ys5: list_a] :
      ( ( Xs
        = ( append_a @ Xs5 @ Ss ) )
      & ( Ys2
        = ( append_a @ Ys5 @ Ss ) )
      & ( ( Xs5 = nil_a )
        | ( Ys5 = nil_a )
        | ( ( last_a @ Xs5 )
         != ( last_a @ Ys5 ) ) ) ) ).

% longest_common_suffix
thf(fact_231_butlast_Osimps_I2_J,axiom,
    ! [Xs: list_list_a,X3: list_a] :
      ( ( ( Xs = nil_list_a )
       => ( ( butlast_list_a @ ( cons_list_a @ X3 @ Xs ) )
          = nil_list_a ) )
      & ( ( Xs != nil_list_a )
       => ( ( butlast_list_a @ ( cons_list_a @ X3 @ Xs ) )
          = ( cons_list_a @ X3 @ ( butlast_list_a @ Xs ) ) ) ) ) ).

% butlast.simps(2)
thf(fact_232_butlast_Osimps_I2_J,axiom,
    ! [Xs: list_a,X3: a] :
      ( ( ( Xs = nil_a )
       => ( ( butlast_a @ ( cons_a @ X3 @ Xs ) )
          = nil_a ) )
      & ( ( Xs != nil_a )
       => ( ( butlast_a @ ( cons_a @ X3 @ Xs ) )
          = ( cons_a @ X3 @ ( butlast_a @ Xs ) ) ) ) ) ).

% butlast.simps(2)
thf(fact_233_concat_Osimps_I1_J,axiom,
    ( ( concat_list_a @ nil_list_list_a )
    = nil_list_a ) ).

% concat.simps(1)
thf(fact_234_concat_Osimps_I1_J,axiom,
    ( ( concat_a @ nil_list_a )
    = nil_a ) ).

% concat.simps(1)
thf(fact_235_concat_Osimps_I2_J,axiom,
    ! [X3: list_list_a,Xs: list_list_list_a] :
      ( ( concat_list_a @ ( cons_list_list_a @ X3 @ Xs ) )
      = ( append_list_a @ X3 @ ( concat_list_a @ Xs ) ) ) ).

% concat.simps(2)
thf(fact_236_concat_Osimps_I2_J,axiom,
    ! [X3: list_a,Xs: list_list_a] :
      ( ( concat_a @ ( cons_list_a @ X3 @ Xs ) )
      = ( append_a @ X3 @ ( concat_a @ Xs ) ) ) ).

% concat.simps(2)
thf(fact_237_butlast__append,axiom,
    ! [Ys2: list_list_a,Xs: list_list_a] :
      ( ( ( Ys2 = nil_list_a )
       => ( ( butlast_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( butlast_list_a @ Xs ) ) )
      & ( ( Ys2 != nil_list_a )
       => ( ( butlast_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( append_list_a @ Xs @ ( butlast_list_a @ Ys2 ) ) ) ) ) ).

% butlast_append
thf(fact_238_butlast__append,axiom,
    ! [Ys2: list_a,Xs: list_a] :
      ( ( ( Ys2 = nil_a )
       => ( ( butlast_a @ ( append_a @ Xs @ Ys2 ) )
          = ( butlast_a @ Xs ) ) )
      & ( ( Ys2 != nil_a )
       => ( ( butlast_a @ ( append_a @ Xs @ Ys2 ) )
          = ( append_a @ Xs @ ( butlast_a @ Ys2 ) ) ) ) ) ).

% butlast_append
thf(fact_239_maps__simps_I2_J,axiom,
    ! [F: a > list_list_a] :
      ( ( maps_a_list_a @ F @ nil_a )
      = nil_list_a ) ).

% maps_simps(2)
thf(fact_240_maps__simps_I2_J,axiom,
    ! [F: list_a > list_a] :
      ( ( maps_list_a_a @ F @ nil_list_a )
      = nil_a ) ).

% maps_simps(2)
thf(fact_241_maps__simps_I2_J,axiom,
    ! [F: list_a > list_list_a] :
      ( ( maps_list_a_list_a @ F @ nil_list_a )
      = nil_list_a ) ).

% maps_simps(2)
thf(fact_242_maps__simps_I2_J,axiom,
    ! [F: a > list_a] :
      ( ( maps_a_a @ F @ nil_a )
      = nil_a ) ).

% maps_simps(2)
thf(fact_243_concat__eq__appendD,axiom,
    ! [Xss2: list_list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
      ( ( ( concat_list_a @ Xss2 )
        = ( append_list_a @ Ys2 @ Zs2 ) )
     => ( ( Xss2 != nil_list_list_a )
       => ? [Xss12: list_list_list_a,Xs2: list_list_a,Xs5: list_list_a,Xss23: list_list_list_a] :
            ( ( Xss2
              = ( append_list_list_a @ Xss12 @ ( cons_list_list_a @ ( append_list_a @ Xs2 @ Xs5 ) @ Xss23 ) ) )
            & ( Ys2
              = ( append_list_a @ ( concat_list_a @ Xss12 ) @ Xs2 ) )
            & ( Zs2
              = ( append_list_a @ Xs5 @ ( concat_list_a @ Xss23 ) ) ) ) ) ) ).

% concat_eq_appendD
thf(fact_244_concat__eq__appendD,axiom,
    ! [Xss2: list_list_a,Ys2: list_a,Zs2: list_a] :
      ( ( ( concat_a @ Xss2 )
        = ( append_a @ Ys2 @ Zs2 ) )
     => ( ( Xss2 != nil_list_a )
       => ? [Xss12: list_list_a,Xs2: list_a,Xs5: list_a,Xss23: list_list_a] :
            ( ( Xss2
              = ( append_list_a @ Xss12 @ ( cons_list_a @ ( append_a @ Xs2 @ Xs5 ) @ Xss23 ) ) )
            & ( Ys2
              = ( append_a @ ( concat_a @ Xss12 ) @ Xs2 ) )
            & ( Zs2
              = ( append_a @ Xs5 @ ( concat_a @ Xss23 ) ) ) ) ) ) ).

% concat_eq_appendD
thf(fact_245_empty__Shift,axiom,
    ! [Kl2: set_list_list_a,K: list_a] :
      ( ( member_list_list_a @ nil_list_a @ Kl2 )
     => ( ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ nil_list_a ) )
       => ( member_list_list_a @ nil_list_a @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) ) ) ) ).

% empty_Shift
thf(fact_246_empty__Shift,axiom,
    ! [Kl2: set_list_a,K: a] :
      ( ( member_list_a2 @ nil_a @ Kl2 )
     => ( ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ nil_a ) )
       => ( member_list_a2 @ nil_a @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) ) ) ) ).

% empty_Shift
thf(fact_247_Succ__Shift,axiom,
    ! [Kl2: set_list_list_a,K: list_a,Kl: list_list_a] :
      ( ( bNF_Gr1046450207list_a @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) @ Kl )
      = ( bNF_Gr1046450207list_a @ Kl2 @ ( cons_list_a @ K @ Kl ) ) ) ).

% Succ_Shift
thf(fact_248_Succ__Shift,axiom,
    ! [Kl2: set_list_a,K: a,Kl: list_a] :
      ( ( bNF_Greatest_Succ_a @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) @ Kl )
      = ( bNF_Greatest_Succ_a @ Kl2 @ ( cons_a @ K @ Kl ) ) ) ).

% Succ_Shift
thf(fact_249_concat__conv__foldr,axiom,
    ( concat_list_a
    = ( ^ [Xss3: list_list_list_a] : ( foldr_769741863list_a @ append_list_a @ Xss3 @ nil_list_a ) ) ) ).

% concat_conv_foldr
thf(fact_250_concat__conv__foldr,axiom,
    ( concat_a
    = ( ^ [Xss3: list_list_a] : ( foldr_list_a_list_a @ append_a @ Xss3 @ nil_a ) ) ) ).

% concat_conv_foldr
thf(fact_251_foldr__append,axiom,
    ! [F: list_a > list_a > list_a,Xs: list_list_a,Ys2: list_list_a,A3: list_a] :
      ( ( foldr_list_a_list_a @ F @ ( append_list_a @ Xs @ Ys2 ) @ A3 )
      = ( foldr_list_a_list_a @ F @ Xs @ ( foldr_list_a_list_a @ F @ Ys2 @ A3 ) ) ) ).

% foldr_append
thf(fact_252_ShiftD,axiom,
    ! [Kl: list_list_a,Kl2: set_list_list_a,K: list_a] :
      ( ( member_list_list_a @ Kl @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) )
     => ( member_list_list_a @ ( cons_list_a @ K @ Kl ) @ Kl2 ) ) ).

% ShiftD
thf(fact_253_ShiftD,axiom,
    ! [Kl: list_a,Kl2: set_list_a,K: a] :
      ( ( member_list_a2 @ Kl @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) )
     => ( member_list_a2 @ ( cons_a @ K @ Kl ) @ Kl2 ) ) ).

% ShiftD
thf(fact_254_list__strict__asc__def,axiom,
    ( list_strict_asc_nat
    = ( list_ord_nat @ ord_less_nat ) ) ).

% list_strict_asc_def
thf(fact_255_lexordp__iff,axiom,
    ( ord_lexordp_nat
    = ( ^ [Xs3: list_nat,Ys: list_nat] :
          ( ? [X4: nat,Vs: list_nat] :
              ( Ys
              = ( append_nat @ Xs3 @ ( cons_nat @ X4 @ Vs ) ) )
          | ? [Us: list_nat,A5: nat,B2: nat,Vs: list_nat,Ws: list_nat] :
              ( ( ord_less_nat @ A5 @ B2 )
              & ( Xs3
                = ( append_nat @ Us @ ( cons_nat @ A5 @ Vs ) ) )
              & ( Ys
                = ( append_nat @ Us @ ( cons_nat @ B2 @ Ws ) ) ) ) ) ) ) ).

% lexordp_iff
thf(fact_256_lexordp__append__left__rightI,axiom,
    ! [X3: nat,Y: nat,Us2: list_nat,Xs: list_nat,Ys2: list_nat] :
      ( ( ord_less_nat @ X3 @ Y )
     => ( ord_lexordp_nat @ ( append_nat @ Us2 @ ( cons_nat @ X3 @ Xs ) ) @ ( append_nat @ Us2 @ ( cons_nat @ Y @ Ys2 ) ) ) ) ).

% lexordp_append_left_rightI
thf(fact_257_lexordp__simps_I3_J,axiom,
    ! [X3: nat,Xs: list_nat,Y: nat,Ys2: list_nat] :
      ( ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) )
      = ( ( ord_less_nat @ X3 @ Y )
        | ( ~ ( ord_less_nat @ Y @ X3 )
          & ( ord_lexordp_nat @ Xs @ Ys2 ) ) ) ) ).

% lexordp_simps(3)
thf(fact_258_hd__append2,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
        = ( hd_list_a @ Xs ) ) ) ).

% hd_append2
thf(fact_259_hd__append2,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( Xs != nil_a )
     => ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
        = ( hd_a @ Xs ) ) ) ).

% hd_append2
thf(fact_260_lexordp__irreflexive,axiom,
    ! [Xs: list_nat] :
      ( ! [X: nat] :
          ~ ( ord_less_nat @ X @ X )
     => ~ ( ord_lexordp_nat @ Xs @ Xs ) ) ).

% lexordp_irreflexive
thf(fact_261_list_Osel_I1_J,axiom,
    ! [X21: list_a,X22: list_list_a] :
      ( ( hd_list_a @ ( cons_list_a @ X21 @ X22 ) )
      = X21 ) ).

% list.sel(1)
thf(fact_262_list_Osel_I1_J,axiom,
    ! [X21: a,X22: list_a] :
      ( ( hd_a @ ( cons_a @ X21 @ X22 ) )
      = X21 ) ).

% list.sel(1)
thf(fact_263_hd__concat,axiom,
    ! [Xs: list_list_list_a] :
      ( ( Xs != nil_list_list_a )
     => ( ( ( hd_list_list_a @ Xs )
         != nil_list_a )
       => ( ( hd_list_a @ ( concat_list_a @ Xs ) )
          = ( hd_list_a @ ( hd_list_list_a @ Xs ) ) ) ) ) ).

% hd_concat
thf(fact_264_hd__concat,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( ( hd_list_a @ Xs )
         != nil_a )
       => ( ( hd_a @ ( concat_a @ Xs ) )
          = ( hd_a @ ( hd_list_a @ Xs ) ) ) ) ) ).

% hd_concat
thf(fact_265_hd__append,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( ( Xs = nil_list_a )
       => ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( hd_list_a @ Ys2 ) ) )
      & ( ( Xs != nil_list_a )
       => ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
          = ( hd_list_a @ Xs ) ) ) ) ).

% hd_append
thf(fact_266_hd__append,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( Xs = nil_a )
       => ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
          = ( hd_a @ Ys2 ) ) )
      & ( ( Xs != nil_a )
       => ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
          = ( hd_a @ Xs ) ) ) ) ).

% hd_append
thf(fact_267_longest__common__prefix,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
    ? [Ps: list_list_a,Xs5: list_list_a,Ys5: list_list_a] :
      ( ( Xs
        = ( append_list_a @ Ps @ Xs5 ) )
      & ( Ys2
        = ( append_list_a @ Ps @ Ys5 ) )
      & ( ( Xs5 = nil_list_a )
        | ( Ys5 = nil_list_a )
        | ( ( hd_list_a @ Xs5 )
         != ( hd_list_a @ Ys5 ) ) ) ) ).

% longest_common_prefix
thf(fact_268_longest__common__prefix,axiom,
    ! [Xs: list_a,Ys2: list_a] :
    ? [Ps: list_a,Xs5: list_a,Ys5: list_a] :
      ( ( Xs
        = ( append_a @ Ps @ Xs5 ) )
      & ( Ys2
        = ( append_a @ Ps @ Ys5 ) )
      & ( ( Xs5 = nil_a )
        | ( Ys5 = nil_a )
        | ( ( hd_a @ Xs5 )
         != ( hd_a @ Ys5 ) ) ) ) ).

% longest_common_prefix
thf(fact_269_lexordp_OCons,axiom,
    ! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
      ( ( ord_less_nat @ X3 @ Y )
     => ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ).

% lexordp.Cons
thf(fact_270_lexordp_OCons__eq,axiom,
    ! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
      ( ~ ( ord_less_nat @ X3 @ Y )
     => ( ~ ( ord_less_nat @ Y @ X3 )
       => ( ( ord_lexordp_nat @ Xs @ Ys2 )
         => ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ) ) ).

% lexordp.Cons_eq
thf(fact_271_lexordp__append__leftD,axiom,
    ! [Xs: list_nat,Us2: list_nat,Vs2: list_nat] :
      ( ( ord_lexordp_nat @ ( append_nat @ Xs @ Us2 ) @ ( append_nat @ Xs @ Vs2 ) )
     => ( ! [A: nat] :
            ~ ( ord_less_nat @ A @ A )
       => ( ord_lexordp_nat @ Us2 @ Vs2 ) ) ) ).

% lexordp_append_leftD
thf(fact_272_lexordp_Ocases,axiom,
    ! [A1: list_nat,A2: list_nat] :
      ( ( ord_lexordp_nat @ A1 @ A2 )
     => ( ( ( A1 = nil_nat )
         => ! [Y3: nat,Ys3: list_nat] :
              ( A2
             != ( cons_nat @ Y3 @ Ys3 ) ) )
       => ( ! [X: nat] :
              ( ? [Xs2: list_nat] :
                  ( A1
                  = ( cons_nat @ X @ Xs2 ) )
             => ! [Y3: nat] :
                  ( ? [Ys3: list_nat] :
                      ( A2
                      = ( cons_nat @ Y3 @ Ys3 ) )
                 => ~ ( ord_less_nat @ X @ Y3 ) ) )
         => ~ ! [X: nat,Y3: nat,Xs2: list_nat] :
                ( ( A1
                  = ( cons_nat @ X @ Xs2 ) )
               => ! [Ys3: list_nat] :
                    ( ( A2
                      = ( cons_nat @ Y3 @ Ys3 ) )
                   => ( ~ ( ord_less_nat @ X @ Y3 )
                     => ( ~ ( ord_less_nat @ Y3 @ X )
                       => ~ ( ord_lexordp_nat @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).

% lexordp.cases
thf(fact_273_lexordp_Osimps,axiom,
    ( ord_lexordp_nat
    = ( ^ [A12: list_nat,A22: list_nat] :
          ( ? [Y2: nat,Ys: list_nat] :
              ( ( A12 = nil_nat )
              & ( A22
                = ( cons_nat @ Y2 @ Ys ) ) )
          | ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
              ( ( A12
                = ( cons_nat @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_nat @ Y2 @ Ys ) )
              & ( ord_less_nat @ X4 @ Y2 ) )
          | ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
              ( ( A12
                = ( cons_nat @ X4 @ Xs3 ) )
              & ( A22
                = ( cons_nat @ Y2 @ Ys ) )
              & ~ ( ord_less_nat @ X4 @ Y2 )
              & ~ ( ord_less_nat @ Y2 @ X4 )
              & ( ord_lexordp_nat @ Xs3 @ Ys ) ) ) ) ) ).

% lexordp.simps
thf(fact_274_lexordp_Oinducts,axiom,
    ! [X12: list_nat,X23: list_nat,P: list_nat > list_nat > $o] :
      ( ( ord_lexordp_nat @ X12 @ X23 )
     => ( ! [Y3: nat,Ys3: list_nat] : ( P @ nil_nat @ ( cons_nat @ Y3 @ Ys3 ) )
       => ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
              ( ( ord_less_nat @ X @ Y3 )
             => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
         => ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
                ( ~ ( ord_less_nat @ X @ Y3 )
               => ( ~ ( ord_less_nat @ Y3 @ X )
                 => ( ( ord_lexordp_nat @ Xs2 @ Ys3 )
                   => ( ( P @ Xs2 @ Ys3 )
                     => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) ) ) ) )
           => ( P @ X12 @ X23 ) ) ) ) ) ).

% lexordp.inducts
thf(fact_275_lexordp__cases,axiom,
    ! [Xs: list_nat,Ys2: list_nat] :
      ( ( ord_lexordp_nat @ Xs @ Ys2 )
     => ( ( ( Xs = nil_nat )
         => ! [Y3: nat,Ys5: list_nat] :
              ( Ys2
             != ( cons_nat @ Y3 @ Ys5 ) ) )
       => ( ! [X: nat] :
              ( ? [Xs5: list_nat] :
                  ( Xs
                  = ( cons_nat @ X @ Xs5 ) )
             => ! [Y3: nat] :
                  ( ? [Ys5: list_nat] :
                      ( Ys2
                      = ( cons_nat @ Y3 @ Ys5 ) )
                 => ~ ( ord_less_nat @ X @ Y3 ) ) )
         => ~ ! [X: nat,Xs5: list_nat] :
                ( ( Xs
                  = ( cons_nat @ X @ Xs5 ) )
               => ! [Ys5: list_nat] :
                    ( ( Ys2
                      = ( cons_nat @ X @ Ys5 ) )
                   => ~ ( ord_lexordp_nat @ Xs5 @ Ys5 ) ) ) ) ) ) ).

% lexordp_cases
thf(fact_276_lexordp__induct,axiom,
    ! [Xs: list_nat,Ys2: list_nat,P: list_nat > list_nat > $o] :
      ( ( ord_lexordp_nat @ Xs @ Ys2 )
     => ( ! [Y3: nat,Ys3: list_nat] : ( P @ nil_nat @ ( cons_nat @ Y3 @ Ys3 ) )
       => ( ! [X: nat,Xs2: list_nat,Y3: nat,Ys3: list_nat] :
              ( ( ord_less_nat @ X @ Y3 )
             => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
         => ( ! [X: nat,Xs2: list_nat,Ys3: list_nat] :
                ( ( ord_lexordp_nat @ Xs2 @ Ys3 )
               => ( ( P @ Xs2 @ Ys3 )
                 => ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ X @ Ys3 ) ) ) )
           => ( P @ Xs @ Ys2 ) ) ) ) ) ).

% lexordp_induct
thf(fact_277_distinct__adj__append__iff,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
      = ( ( distinct_adj_list_a @ Xs )
        & ( distinct_adj_list_a @ Ys2 )
        & ( ( Xs = nil_list_a )
          | ( Ys2 = nil_list_a )
          | ( ( last_list_a @ Xs )
           != ( hd_list_a @ Ys2 ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_278_distinct__adj__append__iff,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
      = ( ( distinct_adj_a @ Xs )
        & ( distinct_adj_a @ Ys2 )
        & ( ( Xs = nil_a )
          | ( Ys2 = nil_a )
          | ( ( last_a @ Xs )
           != ( hd_a @ Ys2 ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_279_rotate1__hd__tl,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( rotate1_list_a @ Xs )
        = ( append_list_a @ ( tl_list_a @ Xs ) @ ( cons_list_a @ ( hd_list_a @ Xs ) @ nil_list_a ) ) ) ) ).

% rotate1_hd_tl
thf(fact_280_rotate1__hd__tl,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( rotate1_a @ Xs )
        = ( append_a @ ( tl_a @ Xs ) @ ( cons_a @ ( hd_a @ Xs ) @ nil_a ) ) ) ) ).

% rotate1_hd_tl
thf(fact_281_successively__append__iff,axiom,
    ! [P: list_a > list_a > $o,Xs: list_list_a,Ys2: list_list_a] :
      ( ( successively_list_a @ P @ ( append_list_a @ Xs @ Ys2 ) )
      = ( ( successively_list_a @ P @ Xs )
        & ( successively_list_a @ P @ Ys2 )
        & ( ( Xs = nil_list_a )
          | ( Ys2 = nil_list_a )
          | ( P @ ( last_list_a @ Xs ) @ ( hd_list_a @ Ys2 ) ) ) ) ) ).

% successively_append_iff
thf(fact_282_successively__append__iff,axiom,
    ! [P: a > a > $o,Xs: list_a,Ys2: list_a] :
      ( ( successively_a @ P @ ( append_a @ Xs @ Ys2 ) )
      = ( ( successively_a @ P @ Xs )
        & ( successively_a @ P @ Ys2 )
        & ( ( Xs = nil_a )
          | ( Ys2 = nil_a )
          | ( P @ ( last_a @ Xs ) @ ( hd_a @ Ys2 ) ) ) ) ) ).

% successively_append_iff
thf(fact_283_distinct__adj__Cons__Cons,axiom,
    ! [X3: list_a,Y: list_a,Xs: list_list_a] :
      ( ( distinct_adj_list_a @ ( cons_list_a @ X3 @ ( cons_list_a @ Y @ Xs ) ) )
      = ( ( X3 != Y )
        & ( distinct_adj_list_a @ ( cons_list_a @ Y @ Xs ) ) ) ) ).

% distinct_adj_Cons_Cons
thf(fact_284_distinct__adj__Cons__Cons,axiom,
    ! [X3: a,Y: a,Xs: list_a] :
      ( ( distinct_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
      = ( ( X3 != Y )
        & ( distinct_adj_a @ ( cons_a @ Y @ Xs ) ) ) ) ).

% distinct_adj_Cons_Cons
thf(fact_285_tl__append2,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( tl_list_a @ ( append_list_a @ Xs @ Ys2 ) )
        = ( append_list_a @ ( tl_list_a @ Xs ) @ Ys2 ) ) ) ).

% tl_append2
thf(fact_286_tl__append2,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( Xs != nil_a )
     => ( ( tl_a @ ( append_a @ Xs @ Ys2 ) )
        = ( append_a @ ( tl_a @ Xs ) @ Ys2 ) ) ) ).

% tl_append2
thf(fact_287_hd__Cons__tl,axiom,
    ! [Xs: list_list_a] :
      ( ( Xs != nil_list_a )
     => ( ( cons_list_a @ ( hd_list_a @ Xs ) @ ( tl_list_a @ Xs ) )
        = Xs ) ) ).

% hd_Cons_tl
thf(fact_288_hd__Cons__tl,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( cons_a @ ( hd_a @ Xs ) @ ( tl_a @ Xs ) )
        = Xs ) ) ).

% hd_Cons_tl
thf(fact_289_list_Ocollapse,axiom,
    ! [List: list_list_a] :
      ( ( List != nil_list_a )
     => ( ( cons_list_a @ ( hd_list_a @ List ) @ ( tl_list_a @ List ) )
        = List ) ) ).

% list.collapse
thf(fact_290_list_Ocollapse,axiom,
    ! [List: list_a] :
      ( ( List != nil_a )
     => ( ( cons_a @ ( hd_a @ List ) @ ( tl_a @ List ) )
        = List ) ) ).

% list.collapse
thf(fact_291_list_Osel_I3_J,axiom,
    ! [X21: list_a,X22: list_list_a] :
      ( ( tl_list_a @ ( cons_list_a @ X21 @ X22 ) )
      = X22 ) ).

% list.sel(3)
thf(fact_292_list_Osel_I3_J,axiom,
    ! [X21: a,X22: list_a] :
      ( ( tl_a @ ( cons_a @ X21 @ X22 ) )
      = X22 ) ).

% list.sel(3)
thf(fact_293_list_Osel_I2_J,axiom,
    ( ( tl_list_a @ nil_list_a )
    = nil_list_a ) ).

% list.sel(2)
thf(fact_294_list_Osel_I2_J,axiom,
    ( ( tl_a @ nil_a )
    = nil_a ) ).

% list.sel(2)
thf(fact_295_successively_Oelims_I3_J,axiom,
    ! [X3: list_a > list_a > $o,Xa: list_list_a] :
      ( ~ ( successively_list_a @ X3 @ Xa )
     => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
            ( ( Xa
              = ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
           => ( ( X3 @ X @ Y3 )
              & ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ).

% successively.elims(3)
thf(fact_296_successively_Oelims_I3_J,axiom,
    ! [X3: a > a > $o,Xa: list_a] :
      ( ~ ( successively_a @ X3 @ Xa )
     => ~ ! [X: a,Y3: a,Xs2: list_a] :
            ( ( Xa
              = ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
           => ( ( X3 @ X @ Y3 )
              & ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ).

% successively.elims(3)
thf(fact_297_successively_Osimps_I3_J,axiom,
    ! [P: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a] :
      ( ( successively_list_a @ P @ ( cons_list_a @ X3 @ ( cons_list_a @ Y @ Xs ) ) )
      = ( ( P @ X3 @ Y )
        & ( successively_list_a @ P @ ( cons_list_a @ Y @ Xs ) ) ) ) ).

% successively.simps(3)
thf(fact_298_successively_Osimps_I3_J,axiom,
    ! [P: a > a > $o,X3: a,Y: a,Xs: list_a] :
      ( ( successively_a @ P @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
      = ( ( P @ X3 @ Y )
        & ( successively_a @ P @ ( cons_a @ Y @ Xs ) ) ) ) ).

% successively.simps(3)
thf(fact_299_successively_Osimps_I1_J,axiom,
    ! [P: list_a > list_a > $o] : ( successively_list_a @ P @ nil_list_a ) ).

% successively.simps(1)
thf(fact_300_successively_Osimps_I1_J,axiom,
    ! [P: a > a > $o] : ( successively_a @ P @ nil_a ) ).

% successively.simps(1)
thf(fact_301_distinct__adj__appendD1,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
     => ( distinct_adj_list_a @ Xs ) ) ).

% distinct_adj_appendD1
thf(fact_302_distinct__adj__appendD1,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
     => ( distinct_adj_a @ Xs ) ) ).

% distinct_adj_appendD1
thf(fact_303_distinct__adj__appendD2,axiom,
    ! [Xs: list_list_a,Ys2: list_list_a] :
      ( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
     => ( distinct_adj_list_a @ Ys2 ) ) ).

% distinct_adj_appendD2
thf(fact_304_distinct__adj__appendD2,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
     => ( distinct_adj_a @ Ys2 ) ) ).

% distinct_adj_appendD2
thf(fact_305_distinct__adj__Nil,axiom,
    distinct_adj_list_a @ nil_list_a ).

% distinct_adj_Nil
thf(fact_306_distinct__adj__Nil,axiom,
    distinct_adj_a @ nil_a ).

% distinct_adj_Nil
thf(fact_307_distinct__adj__ConsD,axiom,
    ! [X3: list_a,Xs: list_list_a] :
      ( ( distinct_adj_list_a @ ( cons_list_a @ X3 @ Xs ) )
     => ( distinct_adj_list_a @ Xs ) ) ).

% distinct_adj_ConsD
thf(fact_308_distinct__adj__ConsD,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( distinct_adj_a @ ( cons_a @ X3 @ Xs ) )
     => ( distinct_adj_a @ Xs ) ) ).

% distinct_adj_ConsD
thf(fact_309_butlast__tl,axiom,
    ! [Xs: list_a] :
      ( ( butlast_a @ ( tl_a @ Xs ) )
      = ( tl_a @ ( butlast_a @ Xs ) ) ) ).

% butlast_tl
thf(fact_310_tl__Nil,axiom,
    ! [Xs: list_list_a] :
      ( ( ( tl_list_a @ Xs )
        = nil_list_a )
      = ( ( Xs = nil_list_a )
        | ? [X4: list_a] :
            ( Xs
            = ( cons_list_a @ X4 @ nil_list_a ) ) ) ) ).

% tl_Nil
thf(fact_311_tl__Nil,axiom,
    ! [Xs: list_a] :
      ( ( ( tl_a @ Xs )
        = nil_a )
      = ( ( Xs = nil_a )
        | ? [X4: a] :
            ( Xs
            = ( cons_a @ X4 @ nil_a ) ) ) ) ).

% tl_Nil
thf(fact_312_Nil__tl,axiom,
    ! [Xs: list_list_a] :
      ( ( nil_list_a
        = ( tl_list_a @ Xs ) )
      = ( ( Xs = nil_list_a )
        | ? [X4: list_a] :
            ( Xs
            = ( cons_list_a @ X4 @ nil_list_a ) ) ) ) ).

% Nil_tl
thf(fact_313_Nil__tl,axiom,
    ! [Xs: list_a] :
      ( ( nil_a
        = ( tl_a @ Xs ) )
      = ( ( Xs = nil_a )
        | ? [X4: a] :
            ( Xs
            = ( cons_a @ X4 @ nil_a ) ) ) ) ).

% Nil_tl
thf(fact_314_list_Oexpand,axiom,
    ! [List: list_list_a,List2: list_list_a] :
      ( ( ( List = nil_list_a )
        = ( List2 = nil_list_a ) )
     => ( ( ( List != nil_list_a )
         => ( ( List2 != nil_list_a )
           => ( ( ( hd_list_a @ List )
                = ( hd_list_a @ List2 ) )
              & ( ( tl_list_a @ List )
                = ( tl_list_a @ List2 ) ) ) ) )
       => ( List = List2 ) ) ) ).

% list.expand
thf(fact_315_list_Oexpand,axiom,
    ! [List: list_a,List2: list_a] :
      ( ( ( List = nil_a )
        = ( List2 = nil_a ) )
     => ( ( ( List != nil_a )
         => ( ( List2 != nil_a )
           => ( ( ( hd_a @ List )
                = ( hd_a @ List2 ) )
              & ( ( tl_a @ List )
                = ( tl_a @ List2 ) ) ) ) )
       => ( List = List2 ) ) ) ).

% list.expand
thf(fact_316_last__tl,axiom,
    ! [Xs: list_list_a] :
      ( ( ( Xs = nil_list_a )
        | ( ( tl_list_a @ Xs )
         != nil_list_a ) )
     => ( ( last_list_a @ ( tl_list_a @ Xs ) )
        = ( last_list_a @ Xs ) ) ) ).

% last_tl
thf(fact_317_last__tl,axiom,
    ! [Xs: list_a] :
      ( ( ( Xs = nil_a )
        | ( ( tl_a @ Xs )
         != nil_a ) )
     => ( ( last_a @ ( tl_a @ Xs ) )
        = ( last_a @ Xs ) ) ) ).

% last_tl
thf(fact_318_successively_Osimps_I2_J,axiom,
    ! [P: list_a > list_a > $o,X3: list_a] : ( successively_list_a @ P @ ( cons_list_a @ X3 @ nil_list_a ) ) ).

% successively.simps(2)
thf(fact_319_successively_Osimps_I2_J,axiom,
    ! [P: a > a > $o,X3: a] : ( successively_a @ P @ ( cons_a @ X3 @ nil_a ) ) ).

% successively.simps(2)
thf(fact_320_successively_Oelims_I1_J,axiom,
    ! [X3: list_a > list_a > $o,Xa: list_list_a,Y: $o] :
      ( ( ( successively_list_a @ X3 @ Xa )
        = Y )
     => ( ( ( Xa = nil_list_a )
         => ~ Y )
       => ( ( ? [X: list_a] :
                ( Xa
                = ( cons_list_a @ X @ nil_list_a ) )
           => ~ Y )
         => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
                ( ( Xa
                  = ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
               => ( Y
                  = ( ~ ( ( X3 @ X @ Y3 )
                        & ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ).

% successively.elims(1)
thf(fact_321_successively_Oelims_I1_J,axiom,
    ! [X3: a > a > $o,Xa: list_a,Y: $o] :
      ( ( ( successively_a @ X3 @ Xa )
        = Y )
     => ( ( ( Xa = nil_a )
         => ~ Y )
       => ( ( ? [X: a] :
                ( Xa
                = ( cons_a @ X @ nil_a ) )
           => ~ Y )
         => ~ ! [X: a,Y3: a,Xs2: list_a] :
                ( ( Xa
                  = ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
               => ( Y
                  = ( ~ ( ( X3 @ X @ Y3 )
                        & ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ).

% successively.elims(1)
thf(fact_322_successively_Oelims_I2_J,axiom,
    ! [X3: list_a > list_a > $o,Xa: list_list_a] :
      ( ( successively_list_a @ X3 @ Xa )
     => ( ( Xa != nil_list_a )
       => ( ! [X: list_a] :
              ( Xa
             != ( cons_list_a @ X @ nil_list_a ) )
         => ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
                ( ( Xa
                  = ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
               => ~ ( ( X3 @ X @ Y3 )
                    & ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ).

% successively.elims(2)
thf(fact_323_successively_Oelims_I2_J,axiom,
    ! [X3: a > a > $o,Xa: list_a] :
      ( ( successively_a @ X3 @ Xa )
     => ( ( Xa != nil_a )
       => ( ! [X: a] :
              ( Xa
             != ( cons_a @ X @ nil_a ) )
         => ~ ! [X: a,Y3: a,Xs2: list_a] :
                ( ( Xa
                  = ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
               => ~ ( ( X3 @ X @ Y3 )
                    & ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ).

% successively.elims(2)
thf(fact_324_distinct__adj__singleton,axiom,
    ! [X3: list_a] : ( distinct_adj_list_a @ ( cons_list_a @ X3 @ nil_list_a ) ) ).

% distinct_adj_singleton
thf(fact_325_distinct__adj__singleton,axiom,
    ! [X3: a] : ( distinct_adj_a @ ( cons_a @ X3 @ nil_a ) ) ).

% distinct_adj_singleton
thf(fact_326_list_Oexhaust__sel,axiom,
    ! [List: list_a] :
      ( ( List != nil_a )
     => ( List
        = ( cons_a @ ( hd_a @ List ) @ ( tl_a @ List ) ) ) ) ).

% list.exhaust_sel
thf(fact_327_successively__Cons,axiom,
    ! [P: a > a > $o,X3: a,Xs: list_a] :
      ( ( successively_a @ P @ ( cons_a @ X3 @ Xs ) )
      = ( ( Xs = nil_a )
        | ( ( P @ X3 @ ( hd_a @ Xs ) )
          & ( successively_a @ P @ Xs ) ) ) ) ).

% successively_Cons
thf(fact_328_distinct__adj__Cons,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( distinct_adj_a @ ( cons_a @ X3 @ Xs ) )
      = ( ( Xs = nil_a )
        | ( ( X3
           != ( hd_a @ Xs ) )
          & ( distinct_adj_a @ Xs ) ) ) ) ).

% distinct_adj_Cons
thf(fact_329_Cons__in__shuffles__iff,axiom,
    ! [Z: a,Zs2: list_a,Xs: list_a,Ys2: list_a] :
      ( ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ Xs @ Ys2 ) )
      = ( ( ( Xs != nil_a )
          & ( ( hd_a @ Xs )
            = Z )
          & ( member_list_a2 @ Zs2 @ ( shuffles_a @ ( tl_a @ Xs ) @ Ys2 ) ) )
        | ( ( Ys2 != nil_a )
          & ( ( hd_a @ Ys2 )
            = Z )
          & ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ ( tl_a @ Ys2 ) ) ) ) ) ) ).

% Cons_in_shuffles_iff
thf(fact_330_map2__Cons__not__empty,axiom,
    ! [Xs: list_a,F: a > a > a,Y: a,Ys2: list_a] :
      ( ( Xs != nil_a )
     => ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
        = ( cons_a @ ( F @ ( hd_a @ Xs ) @ Y ) @ ( map2_a_a_a @ F @ ( tl_a @ Xs ) @ Ys2 ) ) ) ) ).

% map2_Cons_not_empty
thf(fact_331_Nil__in__shuffles,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( member_list_a2 @ nil_a @ ( shuffles_a @ Xs @ Ys2 ) )
      = ( ( Xs = nil_a )
        & ( Ys2 = nil_a ) ) ) ).

% Nil_in_shuffles
thf(fact_332_shufflesE,axiom,
    ! [Zs2: list_a,Xs: list_a,Ys2: list_a] :
      ( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
     => ( ( ( Zs2 = Xs )
         => ( Ys2 != nil_a ) )
       => ( ( ( Zs2 = Ys2 )
           => ( Xs != nil_a ) )
         => ( ! [X: a,Xs5: list_a] :
                ( ( Xs
                  = ( cons_a @ X @ Xs5 ) )
               => ! [Z2: a,Zs3: list_a] :
                    ( ( Zs2
                      = ( cons_a @ Z2 @ Zs3 ) )
                   => ( ( X = Z2 )
                     => ~ ( member_list_a2 @ Zs3 @ ( shuffles_a @ Xs5 @ Ys2 ) ) ) ) )
           => ~ ! [Y3: a,Ys5: list_a] :
                  ( ( Ys2
                    = ( cons_a @ Y3 @ Ys5 ) )
                 => ! [Z2: a,Zs3: list_a] :
                      ( ( Zs2
                        = ( cons_a @ Z2 @ Zs3 ) )
                     => ( ( Y3 = Z2 )
                       => ~ ( member_list_a2 @ Zs3 @ ( shuffles_a @ Xs @ Ys5 ) ) ) ) ) ) ) ) ) ).

% shufflesE
thf(fact_333_map2__Cons__Cons,axiom,
    ! [F: a > a > a,X3: a,Xs: list_a,Y: a,Ys2: list_a] :
      ( ( map2_a_a_a @ F @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) )
      = ( cons_a @ ( F @ X3 @ Y ) @ ( map2_a_a_a @ F @ Xs @ Ys2 ) ) ) ).

% map2_Cons_Cons
thf(fact_334_Cons__in__shuffles__leftI,axiom,
    ! [Zs2: list_a,Xs: list_a,Ys2: list_a,Z: a] :
      ( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
     => ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ ( cons_a @ Z @ Xs ) @ Ys2 ) ) ) ).

% Cons_in_shuffles_leftI
thf(fact_335_Cons__in__shuffles__rightI,axiom,
    ! [Zs2: list_a,Xs: list_a,Ys2: list_a,Z: a] :
      ( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
     => ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ Xs @ ( cons_a @ Z @ Ys2 ) ) ) ) ).

% Cons_in_shuffles_rightI
thf(fact_336_Nil__in__shufflesI,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( Xs = nil_a )
     => ( ( Ys2 = nil_a )
       => ( member_list_a2 @ nil_a @ ( shuffles_a @ Xs @ Ys2 ) ) ) ) ).

% Nil_in_shufflesI
thf(fact_337_map2__Cons__if,axiom,
    ! [Xs: list_a,F: a > a > a,Y: a,Ys2: list_a] :
      ( ( ( Xs = nil_a )
       => ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
          = nil_a ) )
      & ( ( Xs != nil_a )
       => ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
          = ( cons_a @ ( F @ ( hd_a @ Xs ) @ Y ) @ ( map2_a_a_a @ F @ ( tl_a @ Xs ) @ Ys2 ) ) ) ) ) ).

% map2_Cons_if
thf(fact_338_remdups__adj__append_H,axiom,
    ! [Xs: list_a,Ys2: list_a] :
      ( ( ( Xs = nil_a )
        | ( Ys2 = nil_a )
        | ( ( last_a @ Xs )
         != ( hd_a @ Ys2 ) ) )
     => ( ( remdups_adj_a @ ( append_a @ Xs @ Ys2 ) )
        = ( append_a @ ( remdups_adj_a @ Xs ) @ ( remdups_adj_a @ Ys2 ) ) ) ) ).

% remdups_adj_append'
thf(fact_339_remdups__adj__append,axiom,
    ! [Xs_1: list_a,X3: a,Xs_2: list_a] :
      ( ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X3 @ Xs_2 ) ) )
      = ( append_a @ ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X3 @ nil_a ) ) ) @ ( tl_a @ ( remdups_adj_a @ ( cons_a @ X3 @ Xs_2 ) ) ) ) ) ).

% remdups_adj_append
thf(fact_340_remdups__adj__Nil__iff,axiom,
    ! [Xs: list_a] :
      ( ( ( remdups_adj_a @ Xs )
        = nil_a )
      = ( Xs = nil_a ) ) ).

% remdups_adj_Nil_iff
thf(fact_341_remdups__adj__Cons__alt,axiom,
    ! [X3: a,Xs: list_a] :
      ( ( cons_a @ X3 @ ( tl_a @ ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) )
      = ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) ).

% remdups_adj_Cons_alt
thf(fact_342_remdups__adj_Oelims,axiom,
    ! [X3: list_a,Y: list_a] :
      ( ( ( remdups_adj_a @ X3 )
        = Y )
     => ( ( ( X3 = nil_a )
         => ( Y != nil_a ) )
       => ( ! [X: a] :
              ( ( X3
                = ( cons_a @ X @ nil_a ) )
             => ( Y
               != ( cons_a @ X @ nil_a ) ) )
         => ~ ! [X: a,Y3: a,Xs2: list_a] :
                ( ( X3
                  = ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
               => ~ ( ( ( X = Y3 )
                     => ( Y
                        = ( remdups_adj_a @ ( cons_a @ X @ Xs2 ) ) ) )
                    & ( ( X != Y3 )
                     => ( Y
                        = ( cons_a @ X @ ( remdups_adj_a @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ) ).

% remdups_adj.elims
thf(fact_343_remdups__adj_Osimps_I2_J,axiom,
    ! [X3: a] :
      ( ( remdups_adj_a @ ( cons_a @ X3 @ nil_a ) )
      = ( cons_a @ X3 @ nil_a ) ) ).

% remdups_adj.simps(2)
thf(fact_344_remdups__adj_Osimps_I1_J,axiom,
    ( ( remdups_adj_a @ nil_a )
    = nil_a ) ).

% remdups_adj.simps(1)
thf(fact_345_remdups__adj_Osimps_I3_J,axiom,
    ! [X3: a,Y: a,Xs: list_a] :
      ( ( ( X3 = Y )
       => ( ( remdups_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
          = ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) )
      & ( ( X3 != Y )
       => ( ( remdups_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
          = ( cons_a @ X3 @ ( remdups_adj_a @ ( cons_a @ Y @ Xs ) ) ) ) ) ) ).

% remdups_adj.simps(3)
thf(fact_346_remdups__adj__append__two,axiom,
    ! [Xs: list_a,X3: a,Y: a] :
      ( ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X3 @ ( cons_a @ Y @ nil_a ) ) ) )
      = ( append_a @ ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) ) @ ( if_list_a @ ( X3 = Y ) @ nil_a @ ( cons_a @ Y @ nil_a ) ) ) ) ).

% remdups_adj_append_two
thf(fact_347_map2__snoc__snoc,axiom,
    ! [Xs: list_a,Ys2: list_a,F: a > a > a,X3: a,Y: a] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys2 ) )
     => ( ( map2_a_a_a @ F @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) @ ( append_a @ Ys2 @ ( cons_a @ Y @ nil_a ) ) )
        = ( append_a @ ( map2_a_a_a @ F @ Xs @ Ys2 ) @ ( cons_a @ ( F @ X3 @ Y ) @ nil_a ) ) ) ) ).

% map2_snoc_snoc
thf(fact_348_length__greater__imp__not__empty,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( Xs != nil_a ) ) ).

% length_greater_imp_not_empty
thf(fact_349_list__induct2,axiom,
    ! [Xs: list_a,Ys2: list_a,P: list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys2 ) )
     => ( ( P @ nil_a @ nil_a )
       => ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
              ( ( ( size_size_list_a @ Xs2 )
                = ( size_size_list_a @ Ys3 ) )
             => ( ( P @ Xs2 @ Ys3 )
               => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) )
         => ( P @ Xs @ Ys2 ) ) ) ) ).

% list_induct2
thf(fact_350_list__induct3,axiom,
    ! [Xs: list_a,Ys2: list_a,Zs2: list_a,P: list_a > list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys2 ) )
     => ( ( ( size_size_list_a @ Ys2 )
          = ( size_size_list_a @ Zs2 ) )
       => ( ( P @ nil_a @ nil_a @ nil_a )
         => ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a,Z2: a,Zs: list_a] :
                ( ( ( size_size_list_a @ Xs2 )
                  = ( size_size_list_a @ Ys3 ) )
               => ( ( ( size_size_list_a @ Ys3 )
                    = ( size_size_list_a @ Zs ) )
                 => ( ( P @ Xs2 @ Ys3 @ Zs )
                   => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) @ ( cons_a @ Z2 @ Zs ) ) ) ) )
           => ( P @ Xs @ Ys2 @ Zs2 ) ) ) ) ) ).

% list_induct3
thf(fact_351_list__induct4,axiom,
    ! [Xs: list_a,Ys2: list_a,Zs2: list_a,Ws2: list_a,P: list_a > list_a > list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys2 ) )
     => ( ( ( size_size_list_a @ Ys2 )
          = ( size_size_list_a @ Zs2 ) )
       => ( ( ( size_size_list_a @ Zs2 )
            = ( size_size_list_a @ Ws2 ) )
         => ( ( P @ nil_a @ nil_a @ nil_a @ nil_a )
           => ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a,Z2: a,Zs: list_a,W: a,Ws3: list_a] :
                  ( ( ( size_size_list_a @ Xs2 )
                    = ( size_size_list_a @ Ys3 ) )
                 => ( ( ( size_size_list_a @ Ys3 )
                      = ( size_size_list_a @ Zs ) )
                   => ( ( ( size_size_list_a @ Zs )
                        = ( size_size_list_a @ Ws3 ) )
                     => ( ( P @ Xs2 @ Ys3 @ Zs @ Ws3 )
                       => ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) @ ( cons_a @ Z2 @ Zs ) @ ( cons_a @ W @ Ws3 ) ) ) ) ) )
             => ( P @ Xs @ Ys2 @ Zs2 @ Ws2 ) ) ) ) ) ) ).

% list_induct4

% Helper facts (3)
thf(help_If_3_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X3: list_a,Y: list_a] :
      ( ( if_list_a @ $false @ X3 @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X3: list_a,Y: list_a] :
      ( ( if_list_a @ $true @ X3 @ Y )
      = X3 ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    ( ( listIn1312259492pend_a @ ( cons_a @ x @ xs ) @ f )
    = ( listIn1312259492pend_a @ ( cons_a @ x @ nil_a ) @ ( listIn1312259492pend_a @ xs @ f ) ) ) ).

%------------------------------------------------------------------------------